Mam kurde problem z unit testem Napisałem sobie API i piszę teraz testy dla endpointów. Moq itp pięknie działa, testy się dobrze robią. ALE mam problem z jednym endpointem który teoretycznie zwraca listę DTO. No i tutaj mam problem bo serwis zwraca tę listę jako listę DTO z wartościami albo new List<DTO> z mappera. Kod serwisu to ten o:
#dotnet #xunit #programowanie
var list = _context.MoviesList.Include(x => x.Movies).Where(x => x.UserId == userId).ToList();
return _mapper.Map<List<MoviesListDto>>(list);A w kontrolerze mam takie cudo:
var list = _userMoviesService.GetLists(GetUserId());
if (list == null)
{
return NoContent();
}
return Ok(list);I tutaj mam problem bo niestety lista nie jest nullem, więc zamiast oczekiwanego NoContent w teście dostaje Ok wraz z listą która jest pusta xD I po prostu teraz nie wiem, serwis powinien zwracać nulle? Czy returna opakować w jakiś obiekt w stylu ResponseDto gdzie bedzie StatusCode wraz z responsem czy jak to zrobić aby było legitnie + dało się jakoś testować?
#dotnet #xunit #programowanie
Dopisze tylko jeszcze, że test wygląda tak:
_movieListService.Setup(_ => _.GetLists(userId)).Returns(MovieListControllerMockData.GetManyMoviesListDtoEmpty());<br />
z czego MovieListControllerMockData.GetManyMoviesListDtoEmpty() zwraca po prostu new List<MoviesListDto>()
@Dapred warunek:
if (list == null)
Zamień na sprawdzenie, czy nie jest pusta. Dziękuję, FV wyślę na priv.
Zaloguj się aby komentować