php - 模拟 CakePHP 的 HttpSocket 类

标签 php cakephp mocking tdd cakephp-2.3

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

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

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

PS:我不是在测试使用此数据源的模型,而是在测试数据源本身。

有什么想法吗?

最佳答案

在数据源类中有一个方法可以获取 HttpSocket:

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

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

关于php - 模拟 CakePHP 的 HttpSocket 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22204374/

相关文章:

php - 页面过期 - PHP/CakePHP 和 Internet Explorer

cakephp - CakePHP MVC Controller 可以返回图像吗?

python - 如何模拟类的方法返回值

php - Laravel 创建数据库时的用户访问问题

javascript - 我如何在 "Combinator"css 压缩插件中使用单个 css 文件?

PHP MySQL 复杂连接

javascript - 如何使用 jest 模拟从方法内部启动的构造函数

python - 如何通过模拟库模拟套接字对象

php - 组织基于 DDD 的 Web 应用程序的目录结构?

php - php中更干净的字母数组