模拟CakePHP的HttpSocket类

时间:2014-03-05 17:05:37

标签: php cakephp mocking tdd cakephp-2.3

我正在尝试对我的代码进行单元测试,并且我有一个使用HttpSocket类/lib/Cake/Network/Http/HttpSocket.php的数据源。

问题是我不希望它在测试时执行请求,但我找不到模拟该类的方法。

当然我可以通过构造函数中的参数注入它,但我可能不得不更改Cake的核心,所以这不是一个选项。

PS:我没有测试使用这个数据源的模型,我正在测试数据源本身。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在datasource类中有一个方法可以获取HttpSocket:

public function getHttpSocket() {
    return new HttpSocket();
}

然后,您可以模拟数据源的该方法并返回一个完全模拟的HttpSocket对象,并根据需要设置您的期望值和返回值。