いくつかのシリアル化操作を実行するメソッドを単体テストしています。シリアライゼーションロジックをモックするつもりです。コードは次のとおりです。
ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));
次のモックオブジェクトを作成しました。
@Mocked FileInputStream mockFIS;
@Mocked BufferedInputStream mockBIS;
@Mocked ObjectInputStream mockOIS;
NonStrictExpectations()
上記のコンストラクター呼び出しを期待するブロックをセットアップしました。
これを達成する方法についてのアイデアはありますか?
一連のインタラクションに対して期待値の完全なセットを指定できます。JMockitによる動作ベースのテストから:
doSomething()メソッドの可能なテストでは、任意の数の反復が成功した後で、SomeCheckedExceptionがスローされるケースを実行できます。これらの2つのクラス間の相互作用に対する期待の完全なセットを(何らかの理由で)記録することを望んでいると仮定すると、以下のテストを作成できます。
@Test
public void doSomethingHandlesSomeCheckedException() throws Exception
{
new Expectations() {
DependencyAbc abc;
{
new DependencyAbc(); // expect constructor
abc.intReturningMethod(); result = 3;
abc.stringReturningMethod();
returns("str1", "str2");
result = new SomeCheckedException();
}
};
new UnitUnderTest().doSomething();
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加