gpt4 book ai didi

java - 如何在集成测试中测试 Mongo 索引?

转载 作者:可可西里 更新时间:2023-11-01 10:02:32 24 4
gpt4 key购买 nike

我有一个 Java 方法,它在 Mongo 集合的两个字段上创建索引。我应该获取集合的索引信息,然后检查索引的名称和字段是否正确。为此编写集成测试的最干净的方法是什么?使用自定义 Hamcrest 匹配器查看索引是否在集合中有意义吗?

最佳答案

Spring

MongoTemplate#indexOps(String collection)你可以获取 IndexInfo 的列表, 表示 MongoDB 集合的索引。由于这是一个常规列表,您可以使用 hasItem(Matcher<? super T> itemMatcher) 的组合来进行断言。和 hasProperty(String propertyName, Matcher<?> valueMatcher) :

final List<IndexInfo> indexes = mongoTemplate.indexOps("myCollection").getIndexInfo();
assertThat(indexes, hasSize(3));
assertThat(indexes, hasItem(hasProperty("name", is("_id_"))));
assertThat(indexes, hasItem(hasProperty("name", is("index1"))));
assertThat(indexes, hasItem(hasProperty("name", is("index2"))));
assertThat(indexes, hasItem(hasProperty("indexFields", hasItem(hasProperty("key", is("field1"))))));

如果您觉得这太难读或太不方便,您最好使用自定义 Hamcrest 匹配器。

关于java - 如何在集成测试中测试 Mongo 索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44445986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com