MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Verifikasikan bahwa pesan tersebut tidak masuk ke infoStore.
  • Verifikasikan juga bahwa pesan tersebut tidak masuk ke errorStore menggunakan pendekatan verifikasi times().
  • 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);
    }
}
Edit dan Jalankan Kode