EasyMock : java.lang.IllegalStateException: 1 de rapprochement prévu, 2 enregistré

J'ai un problème avec EasyMock 2.5.2 et JUnit 4.8.2 (en cours d'exécution par le biais de l'Éclipse). J'ai lu les messages ici mais n'ont pas trouvé de réponse. J'ai une classe contenant deux tests qui test la même méthode. Je suis à l'aide de rapprochement.

  1. Chaque test passe lorsque vous exécutez seul.
  2. Le test de la première passe toujours - cela est vrai, si je change l'ordre des tests dans le fichier.

Ici est une version simplifiée du code de test:

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);
}

La deuxième (ou la dernière) test échoue toujours avec l'erreur suivante:

java.lang.IllegalStateException: 1 matchers expected, 2 recorded

Toute la perspicacité de ce serait grandement apprécié.

Grâce,
Anne

La ligne lance de cette exception?
Désolé - dans la deuxième (ou la dernière) test -EasyMock.attendre(mockXthing.doXthing((String) EasyMock.anyObject())).andReturn(xyz);
OK ouais je pense que c'est ce que ma réponse dit alors.

OriginalL'auteur Anne | 2011-07-01