ПочатиПочніть безкоштовно

Модульний тест: Повідомлення до бази даних

Згадайте ErrorStore і InfoStore з уроку. Припустімо, метод process(String message) застосовано до повідомлення [WARN]. Це означає, що воно не потрапить до жодної з баз. Напишіть тест, який це перевіряє.

Ця вправа є частиною курсу

Вступ до тестування в Java

Переглянути курс

Інструкції до вправи

  • Перевірте, що повідомлення не потрапило до infoStore.
  • Перевірте, що воно також не потрапило до errorStore, використовуючи підхід перевірки з times().
  • У цьому ж виразі додайте метод бази даних save(), який не був викликаний.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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);
    }
}
Редагувати та запускати код