Stavo leggendo un articolo qui su Mocks. Vorrei concludere per rendere la mia comprensione più chiara.
Tutto ciò che può essere posizionato al posto di un oggetto reale durante il test è chiamato Test Double .
A seconda del test, è necessario che un Test Double sia classificato come segue:
- È necessario un oggetto segnaposto necessario per compilare / eseguire una classe, quindi creare un manichino .
- Vuoi testare parte del sistema in isolamento che dipende da un sistema già testato, quindi crea uno stub che si comporta come da tua supposizione.
- Vuoi assicurarti che una funzione venga chiamata con alcuni argomenti richiesti, quindi hai bisogno di Spy .
- Hai bisogno di un Fake quando vuoi uno Stub che si comporta diversamente a seconda del caso d'uso.
Che cos'è un Mock allora?
Il blog sopra riportato lo riassume come qualsiasi membro della famiglia precedente del test double con l'asserzione inclusa è chiamato Mock .
Esempio
public class AcceptingAuthorizerVerificationMock implements Authorizer {
public boolean authorizeWasCalled = false;
public Boolean authorize(String username, String password) {
authorizeWasCalled = true;
return true;
}
public boolean verify() {
return authorizedWasCalled;
}
}
Ma sono ancora confuso riguardo alla parte di asserzione perché già facciamo asserzioni nei nostri test unitari .