में स्वचालित नकली तात्कालिकता मेरे पास एक स्प्रिंग एक्सएमएल बीन परिभाषा है जिसे मैं एकीकरण परीक्षण लिखना चाहता हूं। एक्सएमएल बीन परिभाषा एक बड़े अनुप्रयोग संदर्भ का हिस्सा है जहां ऐसी कई फाइलें <import>
का उपयोग कर शामिल हैं। परिभाषा के अंदर, मैं कई बीन्स का संदर्भ देता हूं जो अन्य फाइलों से आ रहे हैं।स्प्रिंग जुनीट परीक्षण
मेरे एकीकरण परीक्षण के लिए मैं परिभाषा स्टैंडअलोन को तुरंत चालू करना चाहता हूं और अन्य सभी बीन्स के लिए मॉकिटो मोक्स का उपयोग करना चाहता हूं। अब तक, मैं कुछ इस तरह उपयोग कर रहा हूँ:
FooIntegrationTest.java
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class FooIntegrationTest {
@Autowired private ClassUnderTest underTest;
@Autowired private MockedClass mock;
@Test
public void testFoo() {
}
}
FooIntegrationTest-context.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="part-to-test.xml" />
<bean id="mockedClassReferencedByName" class="org.mockito.Mockito" factory-method="mock" c:classToMock="SomeMockedClass" />
<bean class="org.mockito.Mockito" factory-method="mock" c:classToMock="OtherMockedClassReferencedByType" />
<bean class="org.mockito.Mockito" factory-method="mock" c:classToMock="MockedClass" />
...
</beans>
मैं नहीं बल्कि थकाऊ मजाक खंड स्वचालित करने के लिए चाहते हैं : आदर्श रूप में, मैं उन सभी बीन्स को प्राप्त करना चाहता हूं जो एप्लिकेशन संदर्भ में स्वचालित रूप से मजाक नहीं पाए जाते हैं। part-to-test.xml
@Autowired
के साथ-साथ नाम संदर्भों का उपयोग करके सेट किए गए बीन्स का उपयोग करता है। मैं केवल एक्सएमएल बीन परिभाषा फाइलों का उपयोग करता हूं, और न ही @Configuration
कक्षाओं और न ही @Component
एनोटेशन का उपयोग करता हूं।
मैंने @ContextConfiguration(loader=...)
में एक कस्टम संदर्भ लोडर का उपयोग करने के तरीके में देखा है, लेकिन मुझे अभी तक ऐसा करने के लिए उचित एक्सटेंशन बिंदु नहीं मिला है। Sprinockito इस समस्या को हल करने के लिए प्रतीत नहीं होता है।
क्या वहां कोई अन्य परियोजना है जो पहले से ही इस समस्या को हल करती है? यदि नहीं, तो मैं स्वचालित रूप से मॉक्स बनाने के लिए वसंत का विस्तार कहाँ करूं?
क्या आपने मॉकिटो @ इंजेक्टमोक्स एनोटेशन की कोशिश की है? आपकी आवश्यकता से कम कैसे होता है? –
@ डेविडवालेस '@ इंजेक्टमोक्स' यूनिट परीक्षणों के लिए बेहद अच्छी तरह से काम करता है, यानी एक विशेष कक्षा का परीक्षण जहां परीक्षण मॉक ऑब्जेक्ट्स का उपयोग कर रहा है। हालांकि, मैं स्प्रिंग बीन परिभाषा में संदर्भित सभी वस्तुओं का नकल करना चाहता हूं। इसका मतलब है कि मुझे स्प्रिंग एप्लिकेशन संदर्भ (संभावित रूप से नामित) मैक्स के साथ पॉप्युलेट करने की आवश्यकता है - मुझे पता नहीं है कि कैसे @ इंजेक्टमैक्स 'ऐसा करने में मदद करता है। –
ठीक है, मैं इसके बारे में कुछ और सोचूंगा। –