यूनिट टेस्ट: फॉरेन एक्सचेंज exceptions
Exchange ऐप के लिए एक संभावित एरर सिनेरियो यह है कि बैंक सर्वर किसी आउटेज या नेटवर्क समस्या के कारण उपलब्ध न हो. विघटनकारी exceptions से बचाव के लिए आपने convertEuroTo मेथड के अंदर try/catch लिखा है.
एरर सिनेरियो को simulate करने के लिए mock EuropeanCentralBankServer ऑब्जेक्ट से तब exception फेंकवाइए जब कोई rate रिक्वेस्ट किया जाए.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Java में Testing परिचय
अभ्यास निर्देश
- जब
getRateEuroToकॉल हो, तो mock बैंक ऑब्जेक्ट से exception फेंकवाएँ. - वह सटीक exception ऑब्जेक्ट बनाएँ जिसे आप simulate करना चाहते हैं.
- जाँचें कि
convertEuroToमेथड exception नहीं फेंकता, बल्कि इस स्थिति में-1रिटर्न करता है.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(ExchangeAppTest.class);
}
}
class ExchangeAppTest {
@Test
void convertEuroTo_throwsException_whenBankUnavailable() {
EuropeanCentralBankServer bank = mock(EuropeanCentralBankServer.class);
ExchangeApp exchangeApp = new ExchangeApp(bank);
double euroAmount = 450;
// Stub the mock to throw an exception
when(exchangeApp.convertEuroTo("TST", 100)).____(new ____("Bank server is unavailable."));
double tstAmount = exchangeApp.convertEuroTo("TST", euroAmount);
// Assert on the return value of the method
____(____, ____);
}
}