Phpunit mock没有效果

时间:2014-08-28 07:58:47

标签: php phpunit

代码:

class MockMe
{
    public function mockMeee()
    {
        return 'Im not mocked';
    }
}

试验:

$sut = new MockMe();
$this
    ->getMock(get_class($sut))
    ->expects($this->any())
    ->method('mockMeee')
   ->will($this->returnValue('Im finally mocked'));
echo $sut->mockMeee();

这会输出原始"Im not mocked",但它应该发送Im finally mocked文本。有什么问题?

编辑:完成:

$stub = $this->getMock('MockMe');
$stub->method('mockMeee')->willReturn('Im finally mocked');
echo $stub->mockMeee();

1 个答案:

答案 0 :(得分:2)

你正在构建真正的MockMe,然后构建一个你无所事事的模拟。我认为你的测试应该是这样的:

$sut = $this->getMock('MockMe');

$sut->expects($this->any())
    ->method('mockMeee')
    ->will($this->returnValue('Im finally mocked'));

echo $sut->mockMeee();

有关PHPUnit模拟的详细信息,请参阅http://phpunit.de/manual/4.2/en/test-doubles.html