शुरू करेंमुफ़्त में शुरू करें

यूनिट टेस्ट: डेटाबेस संदेश

लेसन के ErrorStore और InfoStore पर विचार कीजिए। मान लीजिए process(String message) मेथड को [WARN] संदेश पर चलाया गया है, जिसका मतलब है कि वह किसी भी डेटाबेस में नहीं जाएगा। इसे वेरिफाई करने के लिए एक टेस्ट लिखिए।

यह अभ्यास पाठ्यक्रम का हिस्सा है

Java में Testing परिचय

पाठ्यक्रम देखें

अभ्यास निर्देश

  • वेरिफाई करें कि संदेश infoStore में नहीं गया।
  • वेरिफाई करें कि वह errorStore में भी नहीं गया, times() वाले verify तरीके का उपयोग करके।
  • उसी स्टेटमेंट में वह डेटाबेस मेथड, 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);
    }
}
कोड संपादित करें और चलाएँ