Tôi gặp sự cố với EasyMock 2.5.2 và JUnit 4.8.2 (chạy qua Eclipse). Tôi đã đọc tất cả các bài viết tương tự ở đây nhưng chưa tìm thấy câu trả lời. Tôi có một lớp học có chứa hai bài kiểm tra mà kiểm tra cùng một phương pháp. Tôi đang sử dụng matchers.EasyMock: java.lang.IllegalStateException: 1 đối sánh dự kiến, 2 được ghi lại
- Mỗi bài kiểm tra trôi qua khi chạy một mình.
- Bài kiểm tra đầu tiên luôn trôi qua - điều này đúng nếu tôi chuyển đổi thứ tự các bài kiểm tra trong tệp.
Đây là một phiên bản đơn giản của mã kiểm tra:
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);
}
Các thử nghiệm thứ hai (hoặc cuối) luôn thất bại với các lỗi sau:
java.lang.IllegalStateException: 1 matchers expected, 2 recorded
Bất kỳ cái nhìn sâu sắc này sẽ là đánh giá cao.
Cảm ơn, Anne
Dòng nào ném ngoại lệ đó? –
Xin lỗi - trong bài kiểm tra thứ hai (hoặc cuối cùng) - EasyMock.expect (mockXthing.doXthing ((String) EasyMock.anyObject())).andReturn (xyz); – Anne
OK vâng tôi nghĩ đó là câu trả lời của tôi. –