Для тестирования я рекомендую эту библиотеку this
<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<scope>test</scope>
</dependency>
Я думаю, что это очень хорошая библиотека и протестирована в производственном классе. Встроенный MongoDB обеспечит платформо-нейтральный способ запуска mongodb в модульных тестах.
В тестах Вы можете создать простой метод, такой как @BeforeAll, и заполнить данные. Привожу Вам свой пример
@DataMongoTest
@ExtendWith(SpringExtension.class)
@DirtiesContext
class ItemReactiveRepositoryTest {
@Autowired
ItemReactiveRepository itemReactiveRepository;
List<Item> itemList = Arrays.asList(
new Item(null, "Samsung TV", 400.0),
new Item(null, "LG TV", 420.0),
new Item(null, "Apple Watch", 420.0),
new Item(null, "Beats Headphones", 149.99),
new Item("ABC", "Bose Headphones", 149.99)
);
@BeforeEach
void setUp() {
itemReactiveRepository.deleteAll()
.thenMany(Flux.fromIterable(itemList))
.flatMap(item -> itemReactiveRepository.save(item))
.doOnNext(item -> System.out.println("Inserted item is :" + item))
.blockLast();
}
@Test
public void getAllItems() {
Flux<Item> all = itemReactiveRepository.findAll();
StepVerifier.create(all).expectSubscription().expectNextCount(5).verifyComplete();
}
}