そのため、クラスレベルで静的変数としてモックオブジェクトを作成しています...あるテストで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
必要があります。つまり、各テストでチェーンを実行する必要があります。