Получение null из метода во время интеграционного тестирования
Я выполнил интеграционное тестирование своей функции, но проблема в том, что когда я обычно получаю данные из базы данных, он работает так, как ожидалось, но когда я создаю фиктивные объекты для тестирования этого метода
GetDetailedSAPInfoByIdвозвращает null вы можете видеть это в коде
Что я уже пробовал:
Вот мой метод тестирования
public async Task GenerateSapInfoReport_MustReturnPathOfCreatedExcel() { var apiAccess = await GetAccessToken(); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiAccess); var httpResponse = await _client.GetAsync(SapInfoExportEndpoint);//URL httpResponse.EnsureSuccessStatusCode(); // Deserialize and examine results. var viewModel = await GetViewModel<SapInfoExportViewModel>(httpResponse); Assert.NotNull(viewModel); Assert.NotNull(viewModel.RelativePath); }
Класс, в котором я предоставляю макет объекта методу тестирования
public class DbInit { private static string _email = UserConstants.Email; public static void Seed(SHIELDDbContext context) { AddSapInfoExportTestingObjects(sapRepo); } private async static void AddSapInfoExportTestingObjects(SAPRepository<SAPInfo> saprepo) { var checklist = new List<CheckItem>() { new CheckItem{CheckDescription="abc", CheckGroup=1, Result=0, }, new CheckItem{CheckDescription="abc", CheckGroup=1, Result=0, }, new CheckItem{CheckDescription="abc", CheckGroup=1, Result=0, } }; var issues = new List<Issue>() { new Issue{ IssueCategory=IssueCategory.noproblem, IssueType=67, Description="blah"}, new Issue{ IssueCategory=IssueCategory.noproblem, IssueType=67, Description="blah"}, new Issue{ IssueCategory=IssueCategory.issue, IssueType=65, Description="blah"} }; var defaultprofile = new List<ProfileParameter> { new ProfileParameter {ParameterName="a",ParameterValue="hhh"}, new ProfileParameter {ParameterName="a",ParameterValue="hhh"}, new ProfileParameter {ParameterName="a",ParameterValue="hhh"}, }; var Instance = new List<Instance>() { new Instance{ Id=1, } }; var InstanceProfile = new List<InstanceProfile>() { new InstanceProfile{ Id=1, ProfileData="abc", InstanceId=1}, new InstanceProfile{ Id=2, ProfileData="abc", InstanceId=2}, new InstanceProfile{ Id=3 , ProfileData="abc", InstanceId=3}, }; var sapDB = new SAPDB { DBSchema = "SAPSR3", DBType = "2", Server = "k-p83-db" }; var sapInfo = new SAPInfo { SID = SapInfoConstants.Sid, Section = SapInfoConstants.Section, SAPDB = sapDB, CheckList = checklist, Issues = issues, LastCheck = DateTime.Now, Instances = Instance, _DefaultProfile = defaultprofile, }; saprepo.Add(sapInfo); } } }
Приведенная ниже строка возвращает null при отладке метода тестирования в противном случае она возвращает данные
var sapInfo = await _sapRepository.GetDetailedSAPInfoById(request.Id);
public Task<T> GetDetailedSAPInfoById(int id) { return _dbContext.Set<T>() .Where(t => t.Id == id) .Include(i => i.Instances) .ThenInclude(instance => instance.KernelInfo) .Include(i => i.Instances) .ThenInclude(instance => instance.ServerNetwork) .ThenInclude(server => server.VirtualNames) .Include(i => i.Instances) .ThenInclude(instance => instance.InstanceProfile) .Include(i => i.Instances) .ThenInclude(instance => instance.DbClients) .Include(i => i.Instances) .ThenInclude(instance => instance.SSLCerts) .Include(i => i.Issues) .Include(i => i.SAPDB) .Include(i => i.DefaultProfile) .Include(i => i.CheckList) .FirstOrDefaultAsync(); }