Während Lernen Mockito ich zwei verschiedene Anmerkungen @TestSubject und @InjectMocks bei unter Referenzen gefunden.
@TestSubject Ref
@InjectMocks Ref
@InjectMocks
Anmerkung arbeitet absolut in Ordnung, wie in Tutorial erklärt aber @TestSubject
vielmehr seine Anzeige von Fehler nicht funktioniert.
Ich erhalte TestSubject cannot be resolved to a type
Fehler für @TestSubject
Anmerkung im Snippet Code jedoch habe ich richtige Setup abgeschlossen (einschließlich Junit & Mockito JAR-Dateien in dem Build-Pfad).Unterschied zwischen @TestSubject und @InjectMocks?
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import com.infosys.junitinteg.action.MathApplication;
import com.infosys.junitinteg.service.CalculatorService;
@RunWith(MockitoJUnitRunner.class)
public class MathApplicationTester {
// @TestSubject annotation is used to identify class which is going to use
// the mock object
@TestSubject
MathApplication mathApplication = new MathApplication();
// @Mock annotation is used to create the mock object to be injected
@Mock
CalculatorService calcService;
@Test(expected = RuntimeException.class)
public void testAdd() {
// add the behavior to throw exception
Mockito.doThrow(new RuntimeException("Add operation not implemented")).when(calcService).add(10.0, 20.0);
// test the add functionality
Assert.assertEquals(mathApplication.add(10.0, 20.0), 30.0, 0);
}
}
Ich habe zwei Fragen hier.
1. Hat jemand ein ähnliches Problem festgestellt? Wenn ja, was war die Ursache und Lösung?
2. Wenn es funktioniert, was ist der Unterschied zwischen @TestSubject
und @InjectMocks
Annotationen?
Ich kann wirklich keinen Beweis finden, dass diese Anmerkung tatsächlich als Teil von Mockito existiert. Das Lernprogramm, zu dem Sie eine Verknüpfung erstellen, definiert nicht einmal eine Importanweisung dafür. Scheint wie ein Tippfehler für mich und es sollte zum Beispiel "@ Spy" gewesen sein. – Gimby