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:
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
Dapred

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>()

Meverth

@Dapred warunek:


if (list == null)


Zamień na sprawdzenie, czy nie jest pusta. Dziękuję, FV wyślę na priv.

Zaloguj się aby komentować