【问题标题】:Yii: design-by-contract with PHPUnit 3.7Yii:使用 PHPUnit 3.7 进行合同设计
【发布时间】:2013-12-28 01:54:41
【问题描述】:

我正在使用 yii 框架和 phpunit。我可以运行 phpunit 测试。

但是我想在我的控制器中添加断言,就像 here 中描述的那样。我认为类

 BankAccount

没有测试。所以必须有一种方法可以在测试中使用断言。

如果我在控制器中调用这样的断言,这不是测试:

 PHPUnit_Framework_Assert::assertTrue(false);

我明白了

currentPath\PHPUnit_Framework_Assert.php): failed to open stream: No such file or directory 

该文件存在于我的 pear\phpunit 目录中。

那么我如何使用 PHPUnit 进行按合同设计? 还是没有办法为按合同设计添加这样的断言?

Ps:我正在使用命名空间

【问题讨论】:

  • 您能告诉我们您是如何运行测试的吗? Yii 的权威指南有一个专门针对该主题的entire chapter
  • 您好,我编辑了我的问题。但是我在命令行上执行单元测试。但是PHPUnit_Framework_Assert::assertTrue(false); 不在我的单元测试中。它在我的一个控制器中。
  • 嗯,它本来就不属于那里。
  • 为什么?它支持按合同设计的风格。
  • 啊,废了。我分心并退回到我测试控制器的方式。

标签: php yii namespaces phpunit design-by-contract


【解决方案1】:

感谢post 我找到了解决问题的方法。 这是在 Yii 控制器和助手类中启用 PHPUnit 的按合同设计断言的代码。

spl_autoload_unregister(array('YiiBase','autoload'));
require_once('PHPUnit/Autoload.php');
spl_autoload_register(array('YiiBase','autoload'));

【讨论】:

    猜你喜欢
    • 2014-01-11
    • 2012-09-03
    • 2013-04-15
    • 2016-11-29
    • 2012-07-08
    • 2012-08-21
    • 2014-11-30
    • 2013-06-19
    • 2012-12-11
    相关资源
    最近更新 更多