Почему тестовые функции не обращаются к базе данных в памяти?

#java #spring #unit-testing #spring-data-mongodb #junit-jupiter

Вопрос:

Я пишу тест для класса пользовательских функций MongoRepository.

Вот функции репозиториев, которые мне нужно протестировать:

 public interface DataRepository extends MongoRepository<Data, String> {

    List<Data> getBySizeId(String sizeId);
    List<Data> findAllBy();
    List<Data> findAllBySizeId(List<String> sizeId);
}
 

Вот тестовый класс:

 @DataMongoTest
class DataRepositoryTest {

    @Autowired
    private DataRepository underTest;

    @Test
    void create() {
        //Given
        String id = UUID.randomUUID().toString();
        Data Data = new Data();
        Data.setId(id);
        //When
        underTest.save(Data);
        //Then
        Optional<Data> optionalData = underTest.findById(id);
        assertThat(optionalData)
                .isPresent();
    }

    @Test
    void delete() {
        //Given
        //When
        //Then
    }

    @Test
    void getBySizeId() {
        //Given
        String SizeId = UUID.randomUUID().toString();

        Data Data1 = new Data();
        Data1.setSizeId(SizeId);

        Data Data2 = new Data();
        Data2.setSizeId(SizeId);

        Data Data3 = new Data();
        Data3.setSizeId(SizeId);

        List<Data> DataList = Arrays.asList(Data1, Data2, Data3);

        //When
        underTest.saveAll(DataList);// assume that is works correct

        //Then
        List<Data> dataArray = underTest.getBySizeId(SizeId);
        assert(dataArray.stream().count() == 3);
    }
}
 

Как вы можете видеть, я использую @DataMongoTest класс DataRepositoryTest.

Согласно документации:

По умолчанию тесты с аннотацией @DataMongoTest будут использовать встроенный в память процесс MongoDB.

Пока я запускаю тест, тестовые функции обращаются к реальным документам базы данных, а не к MongoDB в памяти.

Мой вопрос заключается в том, есть ли идея, почему он обращается к реальной базе данных, а не к MongoDB в памяти, как это должно быть по умолчанию в соответствии с документами?

Комментарии:

1. В документах говорится, что по умолчанию тесты, аннотированные с помощью @DataMongoTest, будут использовать встроенный в память процесс MongoDB (если он доступен). . Похоже, встроенная база данных нуждается в настройке .