Comment injecter EasyMock maquette en classe testée domaine privé

Je suis à l'aide d'EasyMock de créer des maquettes qui est l'un des privés paramètres (sans les setter) dans la classe testée. J'ai essayé d'utiliser la réflexion, mais il ne fonctionne pas correctement.

public class TestedClassTest{
    @Test
    public void test(){
      TestedClass instance = new TestedClass();
      MockedClass mocked = EasyMock.createMock(MockedClass.class);
      Data data = new Data();

      //Void setter
      DataType dataType = (myDataType.DataType) EasyMock.anyObject();
      mocked.setDataType(dataType);
      EasyMock.expectLastCall();

      //expect
      EasyMock.expect(mocked.getData()).andReturn(data);
      EasyMock.replay(mocked);

      Field field = instance.getClass().getDeclaredField("mockedClass")
      field.setAccessible(true);
      field.set(instance, mocked);

      //run tested method
      instance.someAction();

      EasyMock.verify(mocked);
   }
}

Im obtenir ÉCHOUÉ info:

Unexpected method call MockedClass.setDataType(myData.MyData@104306d75):
MockedClass.getData(): expected: 1, actual: 0
junit.framework.AssertionFailedError: 
Unexpected method call MockedClass.setDataType(myData.MyData@132006d75):
MockedClass.getData(): expected: 1, actual: 0

Je suis sûr que cette méthode est tiré sur des "MockedClass" objet lors de l'essai "de l'instance.uneaction()"

Comment résoudre ce problème?

Édité Réponse :
Après correction doublé replay.mocked() j'ai trouvé (si simple!) encore une méthode void doit être déclarée à l'aide de EasyMock.expectLastCall()

OriginalL'auteur Marcin | 2012-04-04