मैं एक कक्षा के लिए यूनिट टेस्ट लिखने की कोशिश कर रहा हूं जिसमें इसके कई फ़ील्ड @Autowired चिह्नित हैं। इस तथ्य को देखते हुए कि वसंत स्वचालित रूप से इन क्षेत्रों के लिए ठोस कार्यान्वयन को हल कर रहा है, मुझे परीक्षण करने के दौरान निर्भरता के रूप में मेरी मॉक ऑब्जेक्ट्स (EasyMock के माध्यम से बनाई गई) को प्लग करने का एक कठिन समय लग रहा है। कक्षा में @Autowired का उपयोग करना उस वर्ग में सेटर्स की कमी का मतलब है। कक्षा में अतिरिक्त सेटर्स बनाने के बिना मेरे नकली वस्तुओं को प्लग करने का कोई तरीका है?यूनिट जूनिट और इज़ीमॉक का उपयोग कर ऑटोवायर नोटेशन के साथ एक कक्षा का परीक्षण?
public class SomeClassUnderTest implements SomeOtherClass{
@Autowired
private SomeType someType;
@Autowired
private SomeOtherType someOtherType;
@Override
public SomeReturnType someMethodIWouldLikeToTest(){
//Uses someType and someOtherType and returns SomeReturnType
}
}
यहाँ है कैसे मैं अपने टेस्ट वर्ग क्राफ्टिंग हूँ इससे पहले कि मैं दीवार से टकरा:
public class MyTestClassForSomeClassUnderTest{
private SomeType someType;
private SomeOtherType someOtherType;
@Before
public void testSetUp(){
SomeClassUnderTest someClassToTest = new SomeClassUnderTest();
someType = EasyMock.createMock(SomeType.class);
someOtherType = EasyMock.createMock(SomeOtherType.class);
//How to set dependencies????
}
@Test
public void TestSomeMethodIWouldLikeToTest(){
//??????
}
}
यह एक पाने के लिए बहुत अच्छा होगा
यहाँ मैं क्या हासिल करने की कोशिश कर रहा हूँ का एक उदाहरण है सही दिशा में धक्का।
धन्यवाद
टिप के लिए धन्यवाद। –
http://stackoverflow.com/questions/16426323/injecting-into-autowired-variable-during-testing – Dan
EasyMock mock इंजेक्शन के लिए Mockito को संस्करण 3.2 समान एनोटेशन के बाद से समर्थन करता है। मेरा जवाब देखें – krm