그래서 클래스 클래스에서 정적 변수로 모의 객체를 만들고 있습니다. 한 테스트에서는 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.
}
}
두 번째 테스트에서 testObj.bar ()가 호출 될 때 여전히 0으로 값을받습니다 ...이 문제를 해결하는 가장 좋은 방법은 무엇입니까? Foo
각 테스트에서 서로 다른 모의를 사용할 수 있다는 것을 알고 있지만 여러 요청을에서 연결 해제 mockFoo
해야합니다. 즉, 각 테스트에서 연결을 수행해야합니다.