Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

वसंत परीक्षण में @Test विधियों से पहले केवल एक बार डेटाबेस को कैसे पॉप्युलेट करें?

अल्फ्रेडोस उत्तर पर निर्माण, यह एम्बेडेड डेटाबेस की डिफ़ॉल्ट स्क्रिप्ट को कॉल किए बिना डेटाबेस जानकारी को इंजेक्ट करने का एक तरीका है। उदाहरण के लिए, यह तब उपयोगी हो सकता है जब आप अपने लिए डीडीएल को स्वचालित रूप से बनाना चाहते हैं - कम से कम परीक्षणों में।

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"/applicationContext.xml"})
public class TestClass {

    @Autowired
    private ApplicationContext ctx;

    private JdbcTemplate template;

    @Autowired
    public void setDataSource(DataSource dataSource) {
       template = new JdbcTemplate(dataSource);
    }

    private static boolean isInitialized = false;

    @Before
    public void runOnce() {
        if (isInitialized) return;
        System.out.println("Initializing database");

        String script = "classpath:script.sql"; 
        Resource resource = ctx.getResource(script);
        JdbcTestUtils.executeSqlScript(template, resource, true);            
        isInitialized = true;
    }
}

इस तरह, runOnce() परीक्षण चलाने के लिए विधि को एक बार और केवल एक बार कहा जाता है। अगर आप isInitialized . बनाते हैं एक उदाहरण फ़ील्ड (गैर स्थैतिक), प्रत्येक परीक्षण से पहले विधि को बुलाया जाएगा। इस तरह आप प्रत्येक परीक्षण चलाने से पहले, यदि आवश्यक हो, तालिकाओं को गिरा/पुन:आबाद कर सकते हैं।

ध्यान दें कि यह अभी भी एक त्वरित और गंदा समाधान है और डेटाबेस को संभालने का समझदार तरीका राल्फ के उत्तर के अनुसार है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL का नया उदाहरण सेट करना वर्तमान रूट पासवर्ड क्या है?

  2. MySQL में पूर्णांक के लिए खाली स्ट्रिंग की अनुमति कैसे दें?

  3. डीडीएल परिवर्तन तालिका घटनाओं को निष्पादित करने में त्रुटि को कैसे ठीक करें विदेशी कुंजी FKg0mkvgsqn8584qoql6a2rxheq को JDBC स्टेटमेंट के माध्यम से छोड़ दें

  4. MySQL - क्वेरी की गति का परीक्षण करने के लिए कैश का उपयोग न करने के लिए बाध्य करें

  5. चेतावनी:mysql_fetch_array ():आपूर्ति किया गया तर्क मान्य MySQL परिणाम नहीं है