इंटीग्रेशन टेस्टिंग

Java में Testing परिचय

Maria Milusheva

Senior Software Engineer

इंटीग्रेशन टेस्टिंग की परिभाषा

  • इंटीग्रेशन - अलग-अलग सॉफ्टवेयर कंपोनेंट्स या सबसिस्टम्स को जोड़कर एक एकीकृत, समन्वित सिस्टम बनाना।
  • इंटीग्रेशन टेस्ट - ऐसा टेस्ट जो एप्लिकेशन के कई कंपोनेंट्स/मॉड्यूल्स के बीच इंटरैक्शन की जाँच करता है ताकि वे साथ में सही काम करें। इसमें अक्सर एक्सटर्नल डिपेंडेंसीज़ के साथ टेस्टिंग होती है।

असेंबली से ठीक पहले Ikea फर्नीचर की एक तस्वीर

Java में Testing परिचय

डिपेंडेंसीज़

  • सॉफ्टवेयर डिपेंडेंसी - कंपोनेंट्स के बीच ऐसा संबंध जहाँ एक कंपोनेंट के सही काम के लिए दूसरा आवश्यक हो।

1 Chart made using Mermaid: https://mermaid.live
Java में Testing परिचय

इंटीग्रेशन बनाम यूनिट टेस्टिंग

यूनिट टेस्ट्स:

  • अलग-अलग कंपोनेंट्स को आइसोलेशन में टेस्ट करें
  • फेल होने पर कोड के खास हिस्से की समस्या पकड़ी जाती है
  • लिखना और चलाना तेज होता है
  • डिपेंडेंसीज़ से बचने के लिए कई टूल्स का उपयोग करते हैं
  • सटीक रिज़ल्ट्स और आउटकम्स पर असर्ट करते हैं

इंटीग्रेशन टेस्ट्स:

  • कई कंपोनेंट्स और उनके इंटरैक्शंस को टेस्ट करें
  • फेल होने पर ट्रेस करने के लिए गहरी एनालिसिस चाहिए
  • भारी हो सकते हैं; सेटअप और रन में ज्यादा समय लग सकता है
  • रियल डिपेंडेंसीज़ के साथ रियल इंटरैक्शंस टेस्ट करते हैं
  • सटीक रिज़ल्ट्स की बजाय जनरल बिहेवियर्स पर असर्ट कर सकते हैं
Java में Testing परिचय

उदाहरण: फॉरेन एक्सचेंज

मान लीजिए हम एक करेंसी एक्सचेंज ऐप बना रहे हैं:

public class ExchangeApp {
    private EuropeanCentralBankServer bank; // Enables ExchangeApp to use the bank server

    public ExchangeApp(EuropeanCentralBankServer bank) {
        this.bank = bank; // Save the object passed through the constructor
    }


public double convertEuroTo(String currency, double amount) { double rate = this.bank.getRateEuroTo(currency); return amount * rate; // Use the return values of the bank method in calculations } }
Java में Testing परिचय

फॉरेन एक्सचेंज की इंटीग्रेशन टेस्टिंग

इंटीग्रेशन टेस्टिंग convertEuroTo मेथड और EuropeanCentralBankServer दोनों को वेरिफाइ करती है:

@Test
void convert_convertsWithoutError() {
    EuropeanCentralBankServer bank = new EuropeanCentralBankServer();
    ExchangeApp exchangeApp = new ExchangeApp(bank); // Pass bank object to constructor

double amount = 1000.0; String currency = "USD"; // convertEuroTo calls getRateEuroTo from the bank object double result = exchangeApp.convertEuroTo(currency, amount); assertTrue(result > 0); // Can't predict exact value, can only sanity test }
Java में Testing परिचय

अभ्यास करते हैं!

Java में Testing परिचय

Preparing Video For Download...