如何在springboot中测试配置类

iibxawm4  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(397)

我有以下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,所以我不知道如何运行这些代码。
请帮帮我。

34gzjxbg

34gzjxbg1#

我假设测试这种配置的一种有意义的方法是验证 @PostConstruct -带注解的方法。
例如,你可以有一个 @SpringBootTest 加载此配置,然后让您的测试验证在mongo db的嵌入式版本上 fechaAlta 已成功创建。
另一种方法是编写一个手动示例化的测试 CollectionsConfig ,给它一个嘲笑 MongoTemplate 示例,手动调用 @PostConstruct -并最终验证与 MongoTemplate 你很满意。

相关问题