だから、私はモックオブジェクトをクラスレベルで静的変数として作成しています...あるテストでFoo.someMethod()
は特定の値を返し、別のテストでは別の値を返します。私が抱えている問題は、これを正しく機能させるためにモックを再構築する必要があるようだということです。モックの再構築を避け、各テストで同じオブジェクトを使用するだけです。
class TestClass {
private static Foo mockFoo;
@BeforeClass
public static void setUp() {
mockFoo = mock(Foo.class);
}
@Test
public void test1() {
when(mockFoo.someMethod()).thenReturn(0);
TestObject testObj = new TestObject(mockFoo);
testObj.bar(); // calls mockFoo.someMethod(), receiving 0 as the value
}
@Test
public void test2() {
when(mockFoo.someMethod()).thenReturn(1);
TestObject testObj = new TestObject(mockFoo);
testObj.bar(); // calls mockFoo.someMethod(), STILL receiving 0 as the value, instead of expected 1.
}
}
2番目のテストでは、testObj.bar()が呼び出されたときに値として0をまだ受け取っています...これを解決する最良の方法は何ですか?Foo
各テストで異なるモックを使用できることはわかっていますが、から複数のリクエストをチェーンmockFoo
する必要があります。つまり、各テストでチェーンを実行する必要があります。