首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii单位试验,常数

问Yii单位试验,常数
EN

Stack Overflow用户
提问于 2013-09-23 14:44:49
回答 2查看 252关注 0票数 0

我正在用Yii编写单元测试,我需要一种方法来理解我处于测试模式(对于默认作用域和.),我在index-test.php中定义了一个常量。像这样:

代码语言:javascript
复制
defined('YII_TEST_MODE') or define('YII_TEST_MODE',true);

在我的模型中:

代码语言:javascript
复制
if(YII_TEST_MODE){ ...

但是在我的代码中,当我检查它时,它会显示以下错误:

代码语言:javascript
复制
Use of undefined constant YII_TEST_MODE - assumed 'YII_TEST_MODE'

有什么更好的方法来知道你在测试模式下吗?我是不是也用错了语法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-24 06:16:05

在代码中使用if( test )时要非常小心,单元测试的目的是测试将用于特定函数/类的实际代码。

这样做只会确保代码在测试模式下工作,而不是在实际模式下工作--这违背了重点。

如果您遵循每个功能类应该有自己的单元测试集的范式,那么就模拟它与之交互的其他类,而不是在测试模式下执行特定的操作。

例如,如果您正在测试模型类的功能,并且不希望将数据保存到数据库中,则可以使用不实际存储任何数据的连接来模拟数据库连接。

尽管如此,如果您注意到您的配置文件夹,您可能会看到您有一个main.php和一个test.php。您可以做的是定义一个变量"is_test“如下:

代码语言:javascript
复制
'params'=>array(
  'is_test'=>false
)

您将其放入您的main.php中,在您的test.php中将其设置为true。然后您可以检查Yii::app()->params["is_test"]

票数 1
EN

Stack Overflow用户

发布于 2013-09-24 05:43:24

我认为index-test.php正在运行单元测试是错误的,实际上/protected/ test /bootstrap.php初始化测试模式。

但我还是不知道index-test.php对什么有好处?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18962266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档