モック化されたクラスのさまざまな動作について、クラスの動作を検証できるテストを作成する必要があります。同じメソッドに対して複数の動作をサポートするには、同じ TestClass でクラスを複数回モックする必要があります。
JMockItを使用することは可能ですか?
これが私が欲しいものの例です。これは、テストするメイン クラスとそのテストです。
public class MyClass {
private Foo fooObj = null;
public setfooObj(Foo obj) {
fooObj = obj;
}
public boolean process() {
// uses fooObj.getName() to process
}
}
public class MyClassTest {
@MockClass(realClass = mypackage.Foo.class)
public static class MockFoo {
@Mock
public static boolean getName() {
return "test";
}
}
@Test
public void validateProcessing() {
MyClass testObj = new MyClass();
assertEquals(false, testObj.process);
}
}
ここで、異なる値を返すtestObj.process()
ときのメソッドの動作を確認したいと思います。MockFoo.getName()
最初のアサーションでは、その値を「テスト」(モック関数によって返される) として使用したいのですが、次のアサーションでは、別の値でチェックしたいと考えています。