व्यक्तिगत रूप से मैं परीक्षण के लिए एक एम्बेडेड डेटाबेस का उपयोग करना पसंद करता हूं। आप FakeMongo का उपयोग कर सकते हैं
package com.backend.configuration;
import com.github.fakemongo.Fongo;
import com.mongodb.Mongo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
@Configuration
@EnableMongoRepositories(basePackages = "com.backend.repository")
public class MongoConfiguration extends AbstractMongoConfiguration {
private static final String DB_NAME = "test";
@Override
protected String getDatabaseName() {
return DB_NAME;
}
@Override
@Bean
public Mongo mongo() {
return new Fongo(getDatabaseName()).getMongo();
}
@Override
protected String getMappingBasePackage() {
return "com.backend.domain";
}
}
टेस्ट क्लास में:
package com.backend.repository;
import com.backend.configuration.MongoConfiguration;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MongoConfiguration.class)
public class CustomerRepositoryTest {
}
विकास और उत्पादन जैसे अन्य प्रोफाइल के लिए, आप स्प्रिंग बूट प्रोफाइल का उपयोग कर सकते हैं (देखें doc
) या आप मावेन प्रोफाइल का उपयोग कर सकते हैं:application.properties
. में यह गुण जोड़ें [email protected]@
फिर इसे pom.xml
में परिभाषित करें प्रयुक्त प्रोफ़ाइल के अनुसार :
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<mongo.host>localhost</mongo.host>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<mongo.host>mongo</mongo.host>
</properties>
</profile>