Używanie JMockit do próbkowania implementacji interfejsu autowired
Piszemy testy JUnit dla klasy, która używa autowiring w Spring do wstrzykiwania zależności, która jest pewnym wystąpieniem interfejsu. Ponieważ testowana klasa nigdy jawnie nie tworzy instancji zależności ani nie przekazuje jej w konstruktorze, wydaje się, że JMockit również nie jest zobowiązany do jej utworzenia.
Do tej pory korzystaliśmy z SpringRunner, aby sprawić, że wiosenne zależności będą dla nas działały. Dwie rzeczy, których nie podoba nam się to: 1) framework Spring musi zostać załadowany i zainicjowany za każdym razem, gdy uruchamia się testy, które nie są dokładnie szybkie, oraz 2) jesteśmy zmuszeni do jawnego tworzenia wszystkich próbnych zależności jako klas rzeczywistych, coś, co JMockit pomaga wyeliminować.
Oto uproszczony przykład tego, co testujemy:
public class UnitUnderTest {
@Autowired
ISomeInterface someInterface;
public void callInterfaceMethod() {
System.out.println( "UnitUnderTest.callInterfaceMethod calling someInterface.doSomething");
someInterface.doSomething();
}
}
Tak więc pytanie brzmi, czy istnieje sposób, aby JMockit tworzył próbęsomeInterface
?