@InjectMocks
Annotation teilt Mockito mit, alle Mocks (Objekte, die durch @Mock
Annotation kommentiert wurden) in Felder des Testobjekts zu injizieren. Mockito verwendet Reflection dafür.
@Autowired
Annotation sagt Spring-Framework, um Bean aus seinem IoC-Container zu injizieren. Frühling verwendet auch Reflexion für dieses, wenn es private Feldeinspritzung ist. Sie können sogar verwenden Sie sogar @Inject
Annotation (Teil der Java EE-Spezifikation) mit dem gleichen Effekt.
Aber ich würde vorschlagen, die Vorteile von Constructor injection over Field injection zu betrachten. In diesem Fall müssen Sie @InjectMocks
überhaupt nicht verwenden, da Sie über Konstruktor Mocks in das Testobjekt übergeben können. In Ihrem Test und in der Produktion wäre Reflection unter der Haube nicht erforderlich.
Wenn Sie Integrationstest mit einer Reihe von Spring Bohnen erstellen möchten, würde ich vorschlagen, einen Blick auf @DirtiesContext
Annotation zu werfen. Es ist Teil des Spring-Framework-Moduls, das allgemein als "Spring Test" bezeichnet wird.
+1 als ich nicht von Springockito gehört hatte, die schön und sauber aussieht. – dectarin
Springockito ist wirklich nett, ich benutze es nie, da ich Komponententests bevorzuge. Allerdings habe ich kürzlich (vor ein paar Monaten) gehört, dass Springockito einige Bugs hatte. – Brice