मेरे पास एक घटक सेटअप है जो अनिवार्य रूप से किसी एप्लिकेशन के लिए लॉन्चर है। यह बहुत तरह कॉन्फ़िगर किया गया है:परीक्षण के दौरान @Autowired निजी क्षेत्र इंजेक्शन
@Component
public class MyLauncher {
@Autowired
MyService myService;
//other methods
}
MyService @Service
स्प्रिंग टिप्पणी के साथ टिप्पणी की जाती है और किसी भी मुद्दे के बिना मेरे लांचर वर्ग में autowired है।
मैं MyLauncher के लिए कुछ JUnit परीक्षण मामलों में लिखने के लिए, ऐसा करने के लिए मैं इस तरह एक वर्ग शुरू कर दिया चाहते हैं:
public class MyLauncherTest
private MyLauncher myLauncher = new MyLauncher();
@Test
public void someTest() {
}
}
मैं MyService के लिए एक नकली वस्तु बना सकते हैं और अपने परीक्षण कक्षा में myLauncher को इसकी सुई कर सकते हैं ? मेरे पास वर्तमान में मेरे लॉन्चर में गेटर या सेटर नहीं है क्योंकि स्प्रिंग ऑटोवॉयरिंग को संभालने में है। यदि संभव हो, तो मैं गेटर्स और सेटर्स को जोड़ना नहीं चाहता हूं। क्या मैं टेस्ट केस को @Before
इनिट विधि का उपयोग कर ऑटोवॉयर वैरिएबल में नकली ऑब्जेक्ट इंजेक्ट करने के लिए कह सकता हूं?
यदि मैं इस बारे में पूरी तरह गलत हूं, तो यह कहने में संकोच न करें। मैं अभी भी इसके लिए नया हूँ। मेरा मुख्य लक्ष्य केवल कुछ जावा कोड या एनोटेशन होना है जो उस @Autowired
वैरिएबल में एक मॉक ऑब्जेक्ट रखता है, बिना मुझे एक सेटटर विधि लिखना या एप्लिकेशन कॉन्टेक्स्ट-टेस्ट.एक्सएमएल फ़ाइल का उपयोग करना है। मैं अपने परीक्षणों के लिए एक अलग एप्लिकेशन सामग्री को बनाए रखने के बजाय .java फ़ाइल में परीक्षण मामलों के लिए सबकुछ बनाए रखूंगा।
मैं नकली वस्तुओं के लिए मॉकिटो का उपयोग करने की उम्मीद कर रहा हूं। अतीत में मैंने org.mockito.Mockito
का उपयोग करके और Mockito.mock(MyClass.class)
के साथ मेरी ऑब्जेक्ट्स बनाकर बहुत कुछ किया है। इस link
पर
@RunWith का उपयोग करने के बीच क्या अंतर है .... और इसका उपयोग न करें? – jpganz18
@ jpganz18 जूनिट के साथ आप सामान्य रूप से इसका उपयोग करते हैं, यह प्रत्येक विधि – fd8s0
से पहले MockitoAnnotations.initMocks को कॉल करने जैसा है, मैं अभी इस धावक का उपयोग कर रहा हूं: @RunWith (SpringRunner.class) क्या मैं MockitoJUnitRunner को प्रतिस्थापित कर सकता हूं? यदि नहीं, तो इसके बिना मोक्स इंजेक्ट करने का कोई तरीका है? (मैं वास्तव में नकली वस्तुओं का उपयोग नहीं कर रहा हूं। मैं उसी बीन्स को इंजेक्ट करना चाहता हूं जो एप्लिकेशन का उपयोग करता है।) – MiguelMunoz