Easymock에서 void 호출이 많이 발생하는 모의를하려고하는데 문제가 있습니다. 그러나해야 할 때 모의이 실패하는 데 문제가 있습니다.EasyMock 3.5로 여러 void 메서드가 필요합니다
그래서 persistConfiguration (Map)에 대한 호출을 기다리고 있습니다. 나는 절대 호출되지 않았 음을 확신합니다. 그러나 시험은 모두 동일하게 통과합니다.
내 조롱 인터페이스는 다음과 같습니다
public abstract class MyMockedClass{
public abstract void start() throws Exception;
public abstract void stop() throws Exception;
public abstract void persistConfiguration(Map<String, Object> newConfiguration) throws Exception;
}
내가 기대 provider.start()
를 제거하고 일치 getLastCall
호출 테스트 메시지
@RunWith(EasyMockRunner.class)
public class MyFailingTest{
@Mock
private MyMockedClass provider;
....
@Before
public void setUp() throws Exception{
Map<String, Object> expectedSetConfig = new HashMap<>();
expectedSetConfig.put("String", setString);
expectedSetConfig.put("File", testFile2.getCanonicalPath());
/*Expect*/provider.start();
expectLastCall().atLeastOnce();
/*Expect*/provider.persistConfiguration(expectedSetConfig);
expectLastCall().times(1);
/*Expect*/provider.stop();
expectLastCall().atLeastOnce();
replay(provider);
}
}
처럼 보인다
예기치 않은 메서드 호출 MyMockedClass.start() : MyMockedClass.persistConfiguration ({문자열 = newstring 인수로 쓰여진 파일 = C : \ 작업 공간 \의 MEH의 \ 물건}) : 예상 : 1, 실제 : 0 MyMockedClass.stop은() : 예상 적어도 1, 실제 : 0
그래서 테스트가 실패 할 수 있지만 내 질문은 : start
, stop
또는 persistConfiguration
메서드 중 하나를 호출하면 테스트를 실패하게하려면 어떻게합니까? persistConfiguration 메소드는 특정 값을 포함하는 맵 이외에는 호출되지 않으면 실패합니다.