Testy jednostkowe, System.ArgumentNullException

0

Witam. Nigdzie nie mogę znaleźć podobnego przykładu. Mam dwie encje. CarType oraz CarReservation w relacji jeden do wielu. Czyli CarReservation ma odniesienie do CarType a CarType ma wiele CarReservation. Oczywiście wszystko ma prywatne settery. Chciałbym napisać sobie test do klasy CarReservationProcess. Mam zmockowane dbcontext, dbsety a test się przerywa na

var carType = await _context.Set<CarTypeEntity>()
                .Where(new CarTypeSpecificationById(carTypeId).Condition)
                .FirstOrDefaultAsync();  

z komunikatem: Message: System.ArgumentNullException : Wartość nie może być zerowa.
Nazwa parametru: source.
Wygląda jakby żrodło danych nic nie miało?. Ale podobnie pobieram dane przy teście QueryHandlerTest i tam jest ok.
I kolejne pytanie. Jeśli moje encje mają prywatne settery to jest jakiś sposób aby utworzyć do testów obiekty, które będą miały id !=0 ? Id domyślnie jest tworzone przy zapisie do bazy. Ale nie wiem jak to ogarnąć w testach.

link do projektu: https://github.com/szydlaczek/CarRental

0

Nikt nic ? Po różnych sprawdzeniach doszedłem do wniosku, że:
Test przechodzi jak wywaliłem new CarTypeSpecificationById(carTypeId).Condition i dałem po prostu lambde.
Ale np wywala się na_context.Set<CarTypeEntity>().include(c=>c.CarReservations).where(ct=>ct.Id=carTypeId).FirstOrDefaultAsync();
czyli jak dorzuce includa.
Ale problem z Id w danych testowych dalej mam nie rozwiązany. Nie jestem w stanie go ustawić. Widywałem w projektach, że oprócz pk Id ludzie dają w encjach Guida i po tym wyszukują. Czy to jest dobra praktyka ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1