EasyMock 2.5.2 및 JUnit 4.8.2 (Eclipse를 통해 실행 중)에 문제가 있습니다. 나는 비슷한 게시물을 모두 읽었지만 대답을 찾지 못했습니다. 동일한 메소드를 테스트하는 두 개의 테스트가 포함 된 클래스가 있습니다. 나는 matchers를 사용하고있다.EasyMock : java.lang.IllegalStateException : matchers가 1 개, 기록이 2 개가되었습니다.
- 각 테스트는 단독으로 실행될 때 통과합니다.
- 첫 번째 테스트는 항상 통과합니다. 파일에서 테스트 순서를 바꾸면 참입니다.
java.lang.IllegalStateException: 1 matchers expected, 2 recorded
이에 대한 모든 통찰력은 다음과 같습니다 두 번째 (또는 마지막) 시험은 항상 다음과 같은 오류와 함께 실패
private Xthing mockXthing; private MainThing mainThing; @Before public void setUp() { mockXthing = EasyMock.createMock(Xthing.class); mainThing = new MainThing(); mainThing.setxThing(mockXthing); } @After public void cleanUp() { EasyMock.reset(mockXthing); } @Test public void testTwo() { String abc = "abc"; EasyMock.expect(mockXthing.doXthing((String) EasyMock.anyObject())).andReturn(abc); EasyMock.replay(mockXthing); String testResult = mainThing.testCallingXthing((Long) EasyMock.anyObject()); assertEquals("abc", testResult); EasyMock.verify(mockXthing); } @Test public void testOne() { String xyz = "xyz"; EasyMock.expect(mockXthing.doXthing((String) EasyMock.anyObject())).andReturn(xyz); EasyMock.replay(mockXthing); String testResult = mainThing.testCallingXthing((Long) EasyMock.anyObject()); assertEquals("xyz", testResult); EasyMock.verify(mockXthing); }
: 여기
는 테스트 코드의 단순화 된 버전입니다 대단히 감사합니다.
덕분에, 앤
어떤 라인에서 예외가 발생합니까? –
죄송합니다 - 두 번째 (또는 마지막) 테스트에서 -EasyMock.expect (mockXthing.doXthing ((String) EasyMock.anyObject())).andReturn (xyz); – Anne
그래, 내 답변이 그때 말하는 것 같아. –