Usando o JMockit para simular implementações de interface automática
Estamos escrevendo testes JUnit para uma classe que usa a autowiring do Spring para injetar uma dependência, que é uma instância de uma interface. Como a classe em teste nunca instancia explicitamente a dependência ou a passou em um construtor, parece que o JMockit também não se sente obrigado a instanciá-la.
Até agora, temos usado o SpringRunner para ter dependências simuladas do Spring Load para nós, o que funciona. Duas coisas que não gostamos sobre isso são: 1) o framework Spring deve ser carregado e inicializado toda vez que executar os testes que não são exatamente rápidos, e 2) somos forçados a criar explicitamente todas as dependências simuladas como classes reais, algo que O JMockit ajuda a eliminar.
Veja um exemplo simplificado do que estamos testando:
public class UnitUnderTest {
@Autowired
ISomeInterface someInterface;
public void callInterfaceMethod() {
System.out.println( "UnitUnderTest.callInterfaceMethod calling someInterface.doSomething");
someInterface.doSomething();
}
}
Então, a questão é, existe uma maneira de fazer o JMockit criar uma simulaçãosomeInterface
?