यूनिट टेस्ट: डेटाबेस संदेश
लेसन के 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);
}
}