Ich verwende die Mockito framework, um Mock-Objekte in meinen JUnit-Tests zu erstellen. Jeder weiß, was Mock Methoden haben sie aufgefordert worden, so bei meinen Tests kann ich schreibenWerden Mock-Objekte für jeden Test zurückgesetzt?
verify(myMock, atLeastOnce()).myMethod();
Ich frage mich, ob diese interne Mock Kenntnis das, was es genannt hat, wird über meine Tests bestehen? Wenn es fortbesteht, könnte ich falsche positive Ergebnisse bekommen, wenn ich dieselbe Methode in zwei Tests verwende.
Ein Codebeispiel
@RunWith(MockitoJUnitRunner.class)
public class EmrActivitiesImplTest {
@Mock private MyClass myMock;
@Before
public void setup() {
when(myMock.myMethod()).thenReturn("hello");
}
@Test
public void test1() {
// ..some logic
verify(myMock, atLeastOnce()).myMethod();
}
@Test
public void test2() {
// ..some other logic
verify(myMock, atLeastOnce()).myMethod();
}
}
Mock Zustand beibehalten wird - test2 unabhängig passieren wird, da Methode test1 des verifizieren
bestandenMock Zustand zurückgesetzt wird - test2 fehlschlägt, wenn myMock.myMethod() nicht ist
Wenn ich nicht falsch liege, wird Setup einmal aufgerufen, bevor alle Tests ... ja, alle Ihre Tests verwenden das gleiche Mock-Objekt. Sie müssen dieses Objekt am Anfang jeder Testmethode erstellen –