作为一个组运行时,PHPunit测试失败

时间:2014-04-24 13:51:38

标签: php phpunit

在我的phpunit.xml中定义的PHPUnit中运行完整的测试套件时,我的所有单元测试都会运行并通过。

如果我然后运行一组特定的测试,我会发现致命错误,因为我试图模拟的类无法找到。

我有一个Bootstrap.php文件,它设置了一个自动加载器,从我可以看到的两种情况下都使用了Bootstrap。

之前有过这方面的人,或有任何建议吗?

1 个答案:

答案 0 :(得分:0)

我偶尔会发生错误。如果您对自动加载器或设置没有更多了解,可以在类上使用disableAutoload来解决模拟问题。

使用MockBuilder界面:

$mock = $this->getMockBuilder('SomeClass')->disableAutoload()->getMock();

或者

$mock = $this->getMock('SomeClass', array(), null, null, true, true, true)
                                                disables Autoload ----^

http://phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubs.examples.StubTest.php

  • 默认情况下,给定类的所有方法都替换为测试 除非配置了返回值,否则只返回NULL的double 例如,使用will($ this-> returnValue())。

  • 提供第二个(可选)参数时,仅显示方法 其名称在数组中的替换为可配置的测试 双。其他方法的行为不会改变。提供 NULL作为参数意味着不会替换任何方法。

  • 第三个(可选)参数可以包含一个参数数组 传递到原来的班级'构造函数(不替换为 默认情况下为虚拟实现)。

  • 第四个(可选)参数可用于指定类名 对于生成的测试双类。

  • 第五个(可选)参数可用于禁用对该调用的调用 原班级'构造

  • 第六个(可选)参数可用于禁用对该调用的调用 原班级'克隆构造函数。

  • 第七个(可选)参数可用于禁用__autoload() 在测试双重课程的过程中。