2011-12-07 39 views
1

我已经测试方法,只验证如果一个模拟方法被调用两次。 当它失败时,我想向用户提供一条错误消息。PHPUnit:如何为存根定义错误消息期望失败?

我该怎么做?

代码示例:

public function testUpdate() 
{ 
    $emMock = $this->mockEntityManager(
     array('persist', 'flush'), 
     array('name') 
    ); 
    $srv = new Service($emMock); 

    $entity = $srv->create(); 

    $emMock 
     ->expects($this->exactly(2)) 
     ->method('persist'); 
    $emMock 
     ->expects($this->exactly(3)) //Should give an error message 
     ->method('flush'); 

    $srv->update($entity); 
} 

回答

0

抛出一个异常时,故障

$emMock->expects($this->exactly(3)) 
     ->method('persist') 
     ->will($this->throwException(new Exception('Called too many times.'))); 
+0

我一直期待在寻找的PHPUnit文档像一个小时...更多或更少。谢谢 ! – FMaz008

+0

[相关文档部分](http://www.phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubs.examples.StubTest8.php) – edorian

+1

这对我不起作用。我甚至尝试在(2)处使用'',但如果测试正确调用该方法两次,则失败。 –

相关问题