Nel seguente esempio:Garantire metodi non deriso non sono chiamati in Mockito
Execution execution = mock(Execution.class);
when(execution.getLastQty()).thenReturn(1000.0);
when(execution.getLastPrice()).thenReturn(75.0);
order.onFillReceived(execution);
assertEquals(0, order.getLeavesQty(), 0);
esecuzione ha molti altri metodi che non possano essere chiamati. Solo i due metodi che sono stati derisi dovrebbero essere usati all'interno di questo test e dovrebbero essere chiamati. Se vengono chiamati altri metodi, il test dovrebbe fallire.
Come dire a Mockito di fallire se vengono chiamati altri metodi?
Perché vuoi? Se la classe 'Order' chiama altri metodi della classe' Execution', e non influenza l'esito del comportamento che stai testando, allora perché vuoi che il test fallisca? –
In questo caso particolare ... diciamo che order.onFillReceived termina assegnando order.getLeavesQty in base al metodo da execution.getWrongQty(). Poiché getWrongQty restituirà il valore predefinito per quel metodo (0), l'asserzione funzionerà anche se getLeavesQty non viene impostato con il valore corretto. Ciò è dovuto al fatto che l'impostazione predefinita per valori errati corrisponde allo stesso valore asserito nel test. – user465342
Non lo seguo abbastanza. Ma non sarebbe più pulito scegliere valori per il test che non possono facilmente accadere per caso? In modo che se il test passa, si sa che il calcolo è avvenuto correttamente. Se il test non dimostra che è stato calcolato il valore corretto (piuttosto che accidentalmente), metterei in dubbio il valore del test. –