我正在尝试对我的代码进行单元测试,并且我有一个使用HttpSocket类/lib/Cake/Network/Http/HttpSocket.php
的数据源。
问题是我不希望它在测试时执行请求,但我找不到模拟该类的方法。
当然我可以通过构造函数中的参数注入它,但我可能不得不更改Cake的核心,所以这不是一个选项。
PS:我没有测试使用这个数据源的模型,我正在测试数据源本身。
有什么想法吗?
答案 0 :(得分:2)
在datasource类中有一个方法可以获取HttpSocket:
public function getHttpSocket() {
return new HttpSocket();
}
然后,您可以模拟数据源的该方法并返回一个完全模拟的HttpSocket对象,并根据需要设置您的期望值和返回值。