मैं इस परीक्षण के लिए EasyMock जैसी किसी चीज़ का उपयोग करूंगा। मॉकिंग फ्रेमवर्क एक वर्ग पर बाहरी निर्भरता को दूर करने का एक आदर्श तरीका है और आपको परीक्षणों के दौरान बाहरी निर्भरता के परिणाम पर कुल नियंत्रण प्रदान करता है। अपने उदाहरण को थोड़ा बढ़ाने के लिए:
class WebClass {
private WebServiceInterface webserviceInterface;
void method(){
R result = webServiceInterface.performWebServiceCall();
... do something with result
}
public void setWebServiceInterface(WebServiceInterface webServiceInterface){
this.webServiceInterface = webServiceInterface;
}
}
interface WebServiceInterface {
R performWebServiceCall();
}
class WebClassTest {
private WebServiceInterface mock;
private R sampleResult = new R();
@Before
public void before(){
mock = EasyMock.createMock(WebServiceInterface.class);
}
@Test
public void test() {
WebClass classUnderTest = new WebClass();
EasyMock.expect(mock.performWebServiceCall()).andReturn(sampleResult);
classUnderTest.setWebServiceInterface(mock);
classUnderTest.method();
EasyMock.verify(mock);
}
}
पहली चीज जो आपको करने की आवश्यकता होगी वह है अपनी कक्षा में तर्क को निकालने के लिए जहां आप एक WebResource प्राप्त करने के लिए जर्सी का उपयोग करते हैं और एक अलग वर्ग में वेब सेवा को कॉल करते हैं। इस वर्ग के लिए एक इंटरफ़ेस बनाने से आपको एक नकली बनाने की अनुमति मिलेगी, जिसके बाद आप व्यवहार को निर्देशित कर सकते हैं।
एक बार जब यह इंटरफ़ेस बन जाता है, तो आप EasyMock का उपयोग करके एक नकली बना सकते हैं, जो आपके परीक्षण के मामले में एक निर्दिष्ट ऑब्जेक्ट लौटाएगा। ऊपर का उदाहरण सरलीकृत परीक्षण की संरचना और आपका इंटरफ़ेस कैसे काम करेगा, इसका एक सरलीकरण है।
मॉकिंग फ्रेमवर्क की अधिक जानकारी के लिए, कृपया यह प्रश्न देखें । इसके अलावा, यह उदाहरण जावा के उपयोग को मानता है लेकिन सभी भाषाओं में मॉकिंग फ्रेमवर्क उपलब्ध हैं और यद्यपि उन्हें अलग तरह से लागू किया जाता है, वे आम तौर पर उसी तरह काम करेंगे