php - 在单元测试中动态设置 Yii Controller

标签 php unit-testing yii regression-testing yii1.x

我正在使用 PHPUnit 运行一些单元测试,并在这些测试中非常努力地破解我的应用程序(没有其他方法,旧的代码库)。代码库的某些部分使用

Yii::app()->getController()->createUrl(...);

但是在这种情况下,没有 Controller ,因此测试失败。有没有办法在我的测试中动态添加虚拟 Controller ?类似的东西

Yii::app()->setController($dummyController);

或者我是否必须启动某种虚假路由事件?

最佳答案

您可以简单地使用:

$ctrl = new CController('whatever you need for the id')

并使用它的方法。请注意,构造方法仅设置id。您没有提供太多代码,所以这是一个一般想法。查看 createUrl() 方法并检查它是否应该工作。

我使用这种技术在控制台环境下渲染页面(并使用其内容)。

关于php - 在单元测试中动态设置 Yii Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44547399/

相关文章:

c# - 像 selenium 这样的 headless 浏览器,但它不会打开实际的浏览器

php - 无法在 MySQL 数据库中插入表单数据

c++ - 使用 Cocos2d-x 和 Xcode 进行单元测试

unit-testing - ReSharper 运行单元测试但位置错误且缺少配置文件 (ApplicationBase)

caching - Yii 缓存在控制台应用程序和网络应用程序之间共享缓存?

php - 如何将参数发送到 PHP 中的比较函数?

php - 适用于 PHP 5.3 的内存缓存

php - 如何以降序重新排序整个sql语句?

c# - 如何等待方法中创建的所有线程

索引 View 中的 YII CJuiDatePicker