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.