我使用PHPUnit文档创建了以下测试,但它失败并显示以下消息:
PHP Fatal error: Call to undefined method Mock_SomeClass_97937e7a::doSomething().
出了什么问题?这是文档中的示例。我使用的是PHPUnit 4.4.0。
<?php
class SomeClass
{
}
class SomeClassTest extends PHPUnit_Framework_TestCase
{
public function testStub()
{
// Create a stub for the SomeClass class.
$stub = $this->getMockBuilder('SomeClass')
->getMock();
// Configure the stub.
$stub->method('doSomething')
->willReturn('foo');
// Calling $stub->doSomething() will now return
// 'foo'.
$this->assertEquals('foo', $stub->doSomething());
}
}
答案 0 :(得分:1)
doSomething
方法。你不能模拟一个不存在的方法。
答案 1 :(得分:1)
这是快照:
这是我的代码:
class SomeClass
{
public function doSomething()
{
}
}
class StubTest extends PHPUnit_Framework_TestCase
{
public function testStub()
{
// Create a stub for the SomeClass class.
$stub = $this->getMockBuilder('SomeClass')
->setMethods(array('doSomething'))
->getMock();
// Configure the stub.
$stub->expects($this->any())
->method('doSomething')
->will($this->returnValue('foo'));
// Calling $stub->doSomething() will now return
// 'foo'.
$this->assertEquals('foo', $stub->doSomething());
}
}