EasyMock 2.5.2およびJUnit 4.8.2(Eclipseを介して実行中)に問題があります。私はここにすべての同様の記事を読んだが、答えを見つけていない。同じメソッドをテストする2つのテストを含むクラスがあります。私はマッチャーを使用しています。EasyMock:java.lang.IllegalStateException:1マッチャーが予想され、2が記録されました
- 各テストは、単独で実行すると合格になります。
- 最初のテストは常に成功します。これはファイル内のテストの順序を切り替えると真です。ここ
テストコードの簡易版である:第二の(又は最後)の試験は、常に次のエラーで失敗
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);
}
:
java.lang.IllegalStateException: 1 matchers expected, 2 recorded
これに任意の洞察力があろう大いに感謝します。
おかげで、 アン
どのラインがその例外をスローしますか? –
申し訳ありません - 2番目(または最後)のテストで-EasyMock.expect(mockXthing.doXthing((String)EasyMock.anyObject()))。andReturn(xyz); – Anne
ええ、私はそれが私の答えが言うことだと思います。 –