Member 12799321 Ответов: 0

Получение 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();


}

0 Ответов