Ho una semplice domanda sulle migliori pratiche nelle verifiche dei test unitari. Dato questo esempio:
@Test
public void methodUnderTest() {
when(mockedDependency.someMethod()).thenReturn(someValue);
int actual = classUnderTest.methodUnderTest();
assertEquals(5, actual);
verify(mockedDependency).someMethod();//should I do this?
}
Come puoi vedere, sto verificando che il mio simulato venga usato. Dovrei farlo?
Con questa verifica se cambio l'implementazione del metodo (rimuovendo l'utilizzo di tale dipendenza) il mio test fallirà e sono costretto a rimuovere when e verify .
Senza questa verifica se cambio l'implementazione del metodo il mio test passerà, ma non saprò mai che in quel test sto prendendo in giro qualcosa che non è necessario e quando vedrò di nuovo quel test penserò che in la mia implementazione mi serve questa dipendenza.
Grazie in anticipo.