我有以下spring引导配置类,以便在mongodb中创建索引:
@Configuration
@DependsOn("mongoTemplate")
@Profile({ "!test" })
public class CollectionsConfig {
private final MongoTemplate mongoTemplate;
@Autowired
CollectionsConfig(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
@PostConstruct
public void initIndexes() {
mongoTemplate.indexOps("db-name"); // collection name string or .class
.ensureIndex(
new Index().on("fechaAlta", Sort.Direction.ASC).expire(15552000)
);
}
}
既然这个类没有创建任何bean或类似的东西,我怎么能测试这个呢?我见过一些配置类的例子,它们使用应用程序上下文来测试是否创建了bean,但是我没有在这里创建任何bean,所以我不知道如何运行这些代码。
请帮帮我。
1条答案
按热度按时间34gzjxbg1#
我假设测试这种配置的一种有意义的方法是验证
@PostConstruct
-带注解的方法。例如,你可以有一个
@SpringBootTest
加载此配置,然后让您的测试验证在mongo db的嵌入式版本上fechaAlta
已成功创建。另一种方法是编写一个手动示例化的测试
CollectionsConfig
,给它一个嘲笑MongoTemplate
示例,手动调用@PostConstruct
-并最终验证与MongoTemplate
你很满意。