Im za pomocą Moq do tworzenia makiety zestawu danych.Utwórz wyrażenie <Func<,>> używając odbicia
Utworzyłem małą klasę helperów, która pozwala mi przechowywać w pamięci zamiast bazy danych, która sprawia, że testowanie jednostki jest proste. W ten sposób mogę dodawać i usuwać elementy z mojego próbnego zestawu danych, co pozwala mi testować moje wstawianie i usuwanie zgłoszeń serwisowych.
Podczas konfiguracji makiety mam linię, która wygląda następująco
this.Setup(i => i.AcademicCycles).Returns(mockStore.GetList<AcademicCycle>());
My mock ma wiele właściwości, więc chciałbym, aby wykonać ten krok konfiguracji przy użyciu odbicia. Udało mi się wykonać część procesu pracując przez odbicie, ale utknąłem na metodzie lambda na Setup
.
Setup
bierze
Expression<Func<GoalsModelUnitOfWork, IQueryable<AcademicCycle>>>
odpowiadający i => i.AcademicCycles
i chciałbym stworzyć ten dynamicznie. Przy użyciu odbicia Mam następujący:
Nazwa nieruchomości: „AcademicCycles”
Typ IQueryable<AcademicCycle>
Typ AcademicCycle
Mam również wystąpienie i
w rachunku lambda Który jest
Właściwie wynikiem Expression.Lambda mogą być oddane do 'Expression>' jeśli statycznie znają parametr i powrotu typów. Wewnętrzna Expression.Lambda konstruuje instancję odpowiedniego typu 'Expression >', mimo że zwracany typ Expression.Lambda jest słabo wpisany. –
itowlson
Też nie potrzebuję środkowych dwóch linii. Od testowania w prostszym przypadku, 'var lambda = Expression.Lambda (parametr, właściwość)' powinien działać (Expression.Lambda opracuje typ delegata z typów i właściwości). Jednak mój kod testowy był nieco inny od twojego i używał prostszych typów, więc twój przebieg może się różnić ...! – itowlson