phpunit easymock
1.5.0
PHPUnit モック オブジェクトを簡単に構築するためのヘルパー。
このライブラリはモック ライブラリではありません。最も一般的なモックをより簡単に作成するためのいくつかのヘルパーです。
これは何も再発明するものではなく、すべてのユースケースをカバーすることを意図したものではなく、最も一般的なユースケースのみをカバーします。
$ composer require --dev mnapoli/phpunit-easymock
テストで EasyMock を使用できるようにするには、クラスにトレイトを含める必要があります。
class MyTest extends PHPUnit Framework TestCase
{
use EasyMock EasyMock;
/ / ...
}
非常に一般的な PHPUnit モックは次のようになります。
$ mock = $ this -> createMock ( ' MyClass ' );
$ mock -> expect ( $ this -> any ())
-> method ( ' sayHello ' )
-> willReturn ( ' Hello ' );
やったー!
EasyMock を使用して記述する方法は次のとおりです。
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
メソッドが 1 回呼び出される (つまり$mock->expect($this->once())
) と主張したい場合はどうすればよいでしょうか?代わりにspy()
使用してください。
$ mock = $ this -> easySpy ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
値を返すようにメソッドをモックできます。
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
または、コールバックを使用するようにします。
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => function ( $ name ) {
return ' Hello ' . $ name ;
},
]);
Exception
インスタンスを提供することで、メソッドが例外をスローするようにすることもできます。
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => new RuntimeException ( ' Whoops ' ),
]);
既存のモックに対して、 mock()
メソッドを再度呼び出すことができます。
$ mock = $ this -> easyMock ( ' MyClass ' );
$ mock = $ this -> easyMock ( $ mock , [
' sayHello ' => ' Hello ' ,
]);
アサーションや他の PHPUnit 機能を使用したい場合は、次のようにしてください。
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' hello ' ,
]);
$ mock -> expects ( $ this -> once ())
-> method ( ' sayGoodbye ' )
-> willReturn ( ' Goodbye ' );
モックは単純な PHPUnit モックであり、特別なことは何もありません。
CONTRIBUTING ファイルを参照してください。
MITライセンスに基づいてリリースされています。