我只想测试与mongo相关的代码。这是我的测试代码片段:
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {MongoConfig.class})
@SpringBootTest
public class ModelTest {
@Autowired
private MongoTemplate mongoTemplate;
如您所见,我正在使用@ContextConfiguration
来仅加载与Mongo相关的配置:
@Configuration
public class MongoConfig {
@Bean
public CustomConversions customConversions(){
List<Converter<?, ?>> converters = new ArrayList<Converter<?, ?>>();
converters.add(new ReferenceWriterConverter());
return new MongoCustomConversions(converters);
}
}
如您所见,mongoTemplate
仅打算加载自定义转换器,以便将对象序列化到mongodb数据库。
另外,src/test/resources/application.properties
是:
spring.data.mongodb.host: localhost
spring.data.mongodb.port: 27017
问题是,当我尝试运行测试时,我得到的是Unsatisfied dependency expressed through field 'mongoTemplate'
:
UnsatisfiedDependencyException:创建名称为“ net.gencat.transversal.repositori.digital.mongo.ModelTest”的bean时出错:通过字段“ mongoTemplate”表示的不满足的依赖关系;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型为“ org.springframework.data.mongodb.core.MongoTemplate”的合格Bean
相关项目依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
有什么想法吗?
答案 0 :(得分:0)
似乎是您尝试在此处加载自定义mongo配置@Bean客户端或扩展AbstractMongoConfiguration
的问题。
在此处更改数据库名称,而不是demo
@Configuration
public class MongoConfig extends AbstractMongoConfiguration {
@Override
protected String getDatabaseName() {
return "demo";
}
@Override
public MongoClient mongoClient() {
return new MongoClient("localhost", 27017);
}
@Bean
public CustomConversions customConversions(){
List<Converter<?, ?>> converters = new ArrayList<Converter<?, ?>>();
converters.add(new ReferenceWriterConverter());
return new MongoCustomConversions(converters);
}
}