【发布时间】:2014-04-03 20:17:54
【问题描述】:
我之前嘲笑过几节课,但这一节让我着迷
namespace Test\Library;
class MockClassTest extends \PHPUnit_Framework_TestCase
{
public $test;
public function setUp() {
$this->test = $this->getMock('TestMockClass');
$this->test->expects($this->any())
->method('test')
->will($this->returnValue(null));
}
public function testMock() {
$result = $this->test->test();
}
}
namespace Test\Library;
class TestMockClass {
public function test() {}
}
看起来很简单,但运行此测试会导致: PHP 致命错误:调用 /home/vagrant/projects/test/module/Application/test/Test/Library/MockClassTest.php 中未定义的方法 Mock_TestMockClass_ac1dda46::test()
这是一个 PHPUnit 错误还是我遗漏了什么?
我正在使用 PHP 5.5.3 和 PHPUnit 3.7.27。
更新(固定): 请看下面的答案
【问题讨论】:
-
对我来说效果很好。 PHP 5.3.8,PHPUnit 3.7.28。我猜你正在运行其他有错误的代码......
-
请注意,phpunit 会为每个测试方法调用创建一个新实例,因此将您的期望添加到 setUp 不是一个明智的决定...
-
正确,这只是概念验证测试
-
尝试更新你的 phpunit,也许会有帮助。旧版本在模拟对象生成器中存在错误...
-
我还添加了命名空间,我从原始问题中省略了
标签: php unit-testing phpunit