Vào mùa xuân
Với MongoTemplate#indexOps(String collection)
bạn có thể tìm nạp Danh sách IndexInfo
, đại diện cho các chỉ mục của bộ sưu tập MongoDB. Vì đây là danh sách thông thường nên bạn có thể thực hiện các xác nhận của mình với sự kết hợp của hasItem(Matcher<? super T> itemMatcher)
và 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"))))));
Nếu bạn thấy điều này quá khó đọc hoặc không hợp thời, bạn có thể tốt hơn nên sử dụng trình khớp Hamcrest tùy chỉnh.