如何在Spring Boot中测试配置类



我有以下Spring Boot配置类,以便在我们的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,所以我不知道该怎么做才能运行这段代码。

请帮助。

我认为测试此配置的一种有意义的方法是验证@PostConstruct注释方法的副作用。

例如,您可以让@SpringBootTest加载此配置,然后让您的测试验证在您的嵌入式版本mongodb上fechaAlta上的索引已成功创建。

选择 将编写一个测试,其中手动实例化CollectionsConfig,将模拟的MongoTemplate实例传递给它,手动调用@PostConstruct注释的方法,并最终验证与MongoTemplate的预期交互是满意的。

相关内容

  • 没有找到相关文章

最新更新