Unit test: Pesan basis data
Pertimbangkan ErrorStore dan InfoStore dari pelajaran. Misalkan metode process(String message) digunakan pada pesan [WARN], yang berarti pesan tersebut tidak akan masuk ke basis data mana pun. Tulis sebuah pengujian untuk memverifikasinya.
Latihan ini adalah bagian dari kursus
Pengantar Pengujian di Java
Petunjuk latihan
- Verifikasikan bahwa pesan tersebut tidak masuk ke
infoStore. - Verifikasikan juga bahwa pesan tersebut tidak masuk ke
errorStoremenggunakan pendekatan verifikasitimes(). - Pada pernyataan yang sama, tambahkan metode basis data,
save(), yang tidak dipanggil.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
public class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(MessageProcessorTest.class);
}
}
class MessageProcessorTest {
@Test
void process_savesNowhere_whenWrongMessageType() {
InfoStore infoStore = mock(InfoStore.class);
ErrorStore errorStore = mock(ErrorStore.class);
MessageProcessor processor = new MessageProcessor(infoStore, errorStore);
String message = "[WARN] The search is slow.";
processor.process(message);
// Verify infoStore was not called
____(infoStore);
// Verify errorStore.save was called 0 times
verify(errorStore, ____(0)).____(message);
}
}