2011-12-07 11 views
1

モックメソッドが2回呼び出された場合にのみ検証するテストメソッドがあります。 失敗した場合は、エラーメッセージをユーザーに提供したいと思います。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

これは私のためには機能しません。私は 'at(2)'を使って試してみましたが、テストが正しくメソッドを2回だけ呼び出すと失敗します。 –

関連する問題