Интеграционный тест db h2

Здравствуйте, я хочу сделать интеграционный тест для моей базы данных в h2. Но у меня проблемы с моим методом. Мой код интеграционного теста:

@RunWith(SpringRunner.class)
@DataJpaTest
public class Team_database_integration_test {

    @MockBean
    private TeamRepository teamRepository;

    @Autowired
    private TestEntityManager testEntityManager;

    @Test
    public void testDb() {
        Team team = new Team(1L, "teamName", "teamDescription", "krakow", 7);
        testEntityManager.persist(team);
        testEntityManager.flush();

        Assert.assertEquals(1L, teamRepository.findById(team.getId()));
    }
}

Моя ошибка:

java.lang.AssertionError: 
Expected :1
Actual   :Optional.empty

Я думаю, причина кроется в моем методе обслуживания findbyid:

public Optional<TeamDto> findTeamById(Long id) {
        Assert.notNull(id, "ID must exist ");
        return teamRepository
                .findById(id)
                .map(p -> modelMapper.map(p, TeamDto.class));
    }

В вашем тестовом коде вы используете репозиторий напрямую для выбора данных. Не сервис.

Andrey E 11.06.2018 13:37

Значит, мой сервисный код не имеет значения? в сервисе у меня есть метод findteambyid, но я использую findById. Но ошибка означает необязательный. Пустой

Magdalena Rumakowicz 11.06.2018 13:39

Мне непонятна структура вашего проекта. Я предполагаю, что у вас есть класс Service, который внедряет TeamRepository. И вы пытаетесь имитировать репозиторий в своем коде, чтобы использовать db в памяти. Первый вопрос: какой сценарий вы пытаетесь проверить с помощью приведенного выше теста? Также в своем утверждении вы пытаетесь сравнить Long с Optional. Это никогда не сработает.

Andrey E 11.06.2018 13:53

В своем утверждении я пытаюсь сравнить long с long: /

Magdalena Rumakowicz 11.06.2018 13:58

Необязательный. Пустой не длинный :)

Andrey E 11.06.2018 14:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
39
0

Другие вопросы по теме