Не удалось выполнить фиктивный метод хранилища данных Spring из абстрактного родительского класса во время модульного теста - PullRequest
0 голосов
/ 13 декабря 2018

базовый репозиторий, который является родительским классом всех репозиториев

public interface BaseRepository<T extends Base, K extends Serializable> extends JpaRepository<T, K> {

}

Класс репозитория тестовых наборов

@Repository
public interface TestCaseRepository extends BaseRepository<TestCase, UUID> {

}

абстрактный базовый класс обслуживания

public abstract class BaseServiceImpl<T extends Base> implements BaseService<T> {

    protected BaseRepository<T, UUID> repository;

    public T findById(UUID id) {
        Optional<T> optional = repository.findById(id);
        if (optional.isPresent()) {
            return optional.get();
        }
        return null;
    }

    @Transactional
    public boolean delete(UUID id) throws Exception {
        if (repository.existsById(id)) {
            repository.deleteById(id);
        } else {
            throw new EntityNotFoundException("id: " + id.toString() + " does not exist.");
        }
        return !repository.existsById(id);
    }

}

Добавитьследующий код в модульном тесте

testCaseRepository = Mockito.mock(TestCaseRepository.class);
        when(testCaseRepository.saveAndFlush(isA(TestCase.class))).thenReturn(testCase);
        when(testCaseRepository.existsById(UUID.fromString("11111111-1111-1111-1111-111111111111"))).thenReturn(true);
        ReflectionTestUtils.setField(testCaseService, "testCaseRepository", testCaseRepository);

Когда я вызываю метод testCaseRepository.existsById () в методе тестирования, как показано ниже

 @Test
    public void testDelete() {
        try {
            Assert.assertFalse(testCaseService.delete(UUID.fromString("11111111-1111-1111-1111-111111111111")));
        } catch (Exception e) {
            Assert.fail(e.getMessage());
        }
    }

Ошибка подтверждения всегда заключается в том, что идентификатор не существовал.Но я установил «вернуть истину» в методе mock.Очевидно, existById () вернул false.есть ли идеи по этому вопросу?Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...