MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

कैसे जूनिट परीक्षण एक स्प्रिंगबूट आवेदन में एम्बेडेड mongoDB का उपयोग करने के लिए?

परीक्षण में संपूर्ण स्प्रिंग बूट एप्लिकेशन को चलाने का एक विकल्प होगा। इस मामले में आपका स्प्रिंग बूट एप्लिकेशन स्वचालित रूप से खोजा जाएगा और एम्बेडेड mongoDB स्प्रिंग बूट द्वारा डाउनलोड और शुरू किया जाएगा

@RunWith(SpringRunner.class)
@SpringBootTest
public class YourSpringBootApplicationTests {
<ब्लॉकक्वॉट>

08:12:14.676 जानकारी एंबेडेडमोंगो:42 - नोट:नोप्रेलोक कई अनुप्रयोगों में प्रदर्शन को नुकसान पहुंचा सकता है। =52299 08:12:22.005 जानकारी कनेक्शन:71 -खुला कनेक्शन [कनेक्शन आईडी {लोकलवैल्यू:2, सर्वरवैल्यू:2}] टूलोकलहोस्ट:52299

आपके उदाहरण के मामले में आप विभिन्न पोर्ट पर एम्बेडेड मोंगो शुरू करने के लिए कोड को संशोधित कर सकते हैं:

  1. application.properties से गुणों को ओवरराइड करने के लिए test/resources/test.properties फ़ाइल जोड़ें।

    mongo.db.name=person_testDB
    mongo.db.url=localhost
    mongo.db.port=12345
    
  2. MongoDBConfig को संशोधित करें:MONGO_DB_PORT फ़ील्ड जोड़ें

    @EnableMongoRepositories
    public class MongoDBConfig {
        @Value("${mongo.db.url}")
        private String MONGO_DB_URL;
    
        @Value(("${mongo.db.port:27017}"))
        private int MONGO_DB_PORT;
    
        @Value("${mongo.db.name}")
        private String MONGO_DB_NAME;
    
        @Bean
        public MongoTemplate mongoTemplate() {
            MongoClient mongoClient = new MongoClient(MONGO_DB_URL, MONGO_DB_PORT);
            MongoTemplate mongoTemplate = new MongoTemplate(mongoClient, MONGO_DB_NAME);
            return mongoTemplate;
        }
    }
    
  3. परीक्षण वर्ग को संशोधित करें:@DataMongoTest एनोटेशन हटाएं। यह एनोटेशन एम्बेड किए गए mongoDB इंस्टेंस को प्रारंभ करने के लिए बाध्य करता है

    static MongodExecutable mongodExecutable;
    
    @BeforeClass
    public static void setup() throws Exception {
        MongodStarter starter = MongodStarter.getDefaultInstance();
        String bindIp = "localhost";
        int port = 12345;
        IMongodConfig mongodConfig = new MongodConfigBuilder()
                .version(Version.Main.PRODUCTION)
                .net(new Net(bindIp, port, Network.localhostIsIPv6()))
                .build();
        mongodExecutable = null;
        try {
            mongodExecutable = starter.prepare(mongodConfig);
            mongodExecutable.start();
        } catch (Exception e){
            // log exception here
            if (mongodExecutable != null)
                mongodExecutable.stop();
        }
    }
    
    @AfterClass
    public static void teardown() throws Exception {
        if (mongodExecutable != null)
            mongodExecutable.stop();
    }
    

एक और तरीका है MongoRepository और init एंबेडेड Mongo को टेस्ट @कॉन्फ़िगरेशन क्लास के हिस्से के रूप में इस्तेमाल करना:इसकी रूपरेखा यहां दी गई है:स्प्रिंग बूट एप्लिकेशन में इंटीग्रेशन टेस्टिंग के लिए आप एंबेडेड मोंगडीबी को कैसे कॉन्फ़िगर करते हैं?




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. अनुयायी - मोंगोडब डेटाबेस डिजाइन

  2. मोंगोडब उप सरणी के अंदर पाते हैं

  3. डेटा खोए बिना मैं एक मोंगोडब कैप्ड संग्रह का आकार कैसे बदल सकता हूं?

  4. MongoError:कनेक्ट ECONNREFUSED 127.0.0.1:27017

  5. MongoDB में नेस्टेड सरणियों में तत्व डालें