पर विचार करें ठेठ DBUnit स्प्रिंग टेस्ट (https://github.com/springtestdbunit/spring-test-dbunit देखें):वसंत autowiring से पहले होने के लिए DBUnit @DatabaseSetup कैसे हो सकता है?
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:/META-INF/spring/applicationContext-database.xml",
"classpath:spring-*.xml"
})
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class,
TransactionalTestExecutionListener.class,
DbUnitTestExecutionListener.class })
@DatabaseSetup("/dbunit/data.xml")
public class UnitTest {
@Autowired
private UnitUnderTest uut;
@Test
public void shouldInitDB() {
...
}
}
क्या मैं सत्यापित किया है कि है, और उम्मीद है, Autowiring DatabaseSetup से पहले नहीं होगा। ऐसा इसलिए होना चाहिए क्योंकि DBUnit कॉन्फ़िगर किए गए डेटा स्रोत प्रदान करने के लिए अनुप्रयोग संदर्भ पर निर्भर करता है।
समस्या यह है कि यूनिटयून्डरटेस्ट बीन में @PostConstruct है जहां यह डीबी से कुछ डेटा लोड करता है, लेकिन चूंकि ऑटोवॉयरिंग डीबुनिट सेटअप से पहले होती है, तो डेटा इस चरण में उपलब्ध नहीं होगा।
इस मुद्दे को साफ तरीके से हल करने के तरीके पर कोई विचार?
एक ही मुद्दे की तरह कुछ का उपयोग कर सकते हैं। कोई समाधान? – Puce
यह वास्तव में एक अच्छा समाधान नहीं है, लेकिन मुझे आगे बढ़ने की इजाजत दी गई है। ऑब्जेक्ट से विरासत में आने वाले टेस्ट क्लास बनाएं और बाहरी प्रारंभिकरण के लिए एक विधि का पर्दाफाश करें। @Before परीक्षण में प्रयोग करें। –
अभी तक कोई समाधान नहीं है। एक सभ्य कामकाज भी नहीं। खोज रखेंगे। –