Pessoas vcs podem me ajudar com uma dúvida:
tenho os seguintes beans no contexto do spring:
@Repository
public class FakeRepository implements FakeRepositoryInteface {
@Autowired
private FakeDaoInterface dao;
public void doStuff() {
dao.doStuff();
}
}
public inteface FakeRepositoryInteface {
void doStuff();
}
@Repository
public class FakeDao implements FakeDaoInterface {
public void doStuff() { }
}
public interface FakeDaoInterface {
void doStuff();
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=ContextLoader.class)
public class FakeRepositoryTest {
@Autowired
private FakeRepositoryInterface repository;
private Mockery context = new Mokery();
@Test
public void doStuffTest() {
// aqui eu moko meu dao com JMock crio as regras como ele deve trabalhar
}
}
Agora a grande dúvida, no teste eu tenho o atributo repository injetado pelo spring com o @Autowired, dentro desse objeto ele injetou para mim um objeto do tipo FakeDao (FakeDaoInterface)tbm via @Autowired. Esse objeto dao foi “mokado” com o JMock, ai preciso substituir o objeto que já foi injetado.
Alguém tem alguma idéia para resolver o problema?

