在我的phpunit.xml中定义的PHPUnit中运行完整的测试套件时,我的所有单元测试都会运行并通过。
如果我然后运行一组特定的测试,我会发现致命错误,因为我试图模拟的类无法找到。
我有一个Bootstrap.php文件,它设置了一个自动加载器,从我可以看到的两种情况下都使用了Bootstrap。
之前有过这方面的人,或有任何建议吗?
答案 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() 在测试双重课程的过程中。