परीक्षण में संपूर्ण स्प्रिंग बूट एप्लिकेशन को चलाने का एक विकल्प होगा। इस मामले में आपका स्प्रिंग बूट एप्लिकेशन स्वचालित रूप से खोजा जाएगा और एम्बेडेड mongoDB स्प्रिंग बूट द्वारा डाउनलोड और शुरू किया जाएगा
@RunWith(SpringRunner.class)
@SpringBootTest
public class YourSpringBootApplicationTests {
<ब्लॉकक्वॉट> 08:12:14.676 जानकारी एंबेडेडमोंगो:42 - नोट:नोप्रेलोक कई अनुप्रयोगों में प्रदर्शन को नुकसान पहुंचा सकता है। =52299 08:12:22.005 जानकारी कनेक्शन:71 -खुला कनेक्शन [कनेक्शन आईडी {लोकलवैल्यू:2, सर्वरवैल्यू:2}] टूलोकलहोस्ट:52299पी>
आपके उदाहरण के मामले में आप विभिन्न पोर्ट पर एम्बेडेड मोंगो शुरू करने के लिए कोड को संशोधित कर सकते हैं:
-
application.properties से गुणों को ओवरराइड करने के लिए test/resources/test.properties फ़ाइल जोड़ें।
mongo.db.name=person_testDB mongo.db.url=localhost mongo.db.port=12345
-
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; } }
-
परीक्षण वर्ग को संशोधित करें:@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 को टेस्ट @कॉन्फ़िगरेशन क्लास के हिस्से के रूप में इस्तेमाल करना:इसकी रूपरेखा यहां दी गई है:स्प्रिंग बूट एप्लिकेशन में इंटीग्रेशन टेस्टिंग के लिए आप एंबेडेड मोंगडीबी को कैसे कॉन्फ़िगर करते हैं?