сервис тестирования в весенней загрузке - PullRequest
0 голосов
/ 11 декабря 2018

Когда я пытаюсь проверить свой сервис, у меня появляется ошибка:

org.mockito.exceptions.misusing.WrongTypeOfReturnValue: HashSet не может быть возвращен функцией findAll () findAll () должен вернуть List

public class HotelServiceImplTest {
    HotelServiceImpl hotelService;

    @Mock
    HotelRepository hotelRepository;

    @Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        hotelService = new HotelServiceImpl(hotelRepository);
    }

    @Test
    public void getHotels() {

        Hotel hotel = new Hotel();
        HashSet<Hotel> hotelData = new HashSet<>();
        hotelData.add(hotel);

        when(hotelService.getHotels()).thenReturn(hotelData);

        Set<Hotel> hotelSet = hotelService.getHotels();

        assertEquals(1,hotelSet.size());

    }
}


@Override
public Set<Hotel> getHotels() {
    Set<Hotel> hotelSet = new HashSet<>();
    hotelRepository.findAll().iterator().forEachRemaining(hotel -> hotelSet.add(hotel));
    return hotelSet;
}

Я использую JpaRepository.

1 Ответ

0 голосов
/ 14 декабря 2018

Позвольте мне попытаться исправить ваш тест, я думаю, что вы должны реализовать его следующим образом:

@RunWith(MockitoJUnitRunner.class)
public class HotelServiceImplTest {

    @InjectMocks
    HotelServiceImpl serviceUnderTest;

    @Mock
    HotelRepository hotelRepository;


    @Test
    public void getHotels() {

        Hotel hotel = new Hotel();
        HashSet<Hotel> hotelData = new HashSet<>();
        hotelData.add(hotel);

        when(hotelRepository.getHotels()).thenReturn(hotelData);

        Set<Hotel> hotelSet = serviceUnderTest.getHotels();

        assertEquals(1,hotelSet.size());

    }
}


@Override
public Set<Hotel> getHotels() {
    Set<Hotel> hotelSet = new HashSet<>();
    hotelRepository.findAll().iterator().forEachRemaining(hotel -> hotelSet.add(hotel));
    return hotelSet;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...