public async void CreateDefaultUsers() { using (var factory = new DbFactory()) { #region 준비(arrange) Product product8_Exist = null; string product10_Name = ""; Product product13_NotExist = null; int? middle_etc_count = null; string product1_Category_Name = null; string product4_PhotoUrl = null; #endregion #region 테스트(act) using (var context = factory.CreateContext()) { var controller = new SeedController( context); //초기 제품 데이터 생성 await controller.CreateSampleProducts(); //8번 제품이 존재하면 가져오고, 없다면 null product8_Exist = await context.Products .FirstOrDefaultAsync(p => p.Id == 8); //10번 제품이 존재한다면 이름을 가져오고 //존재하지 않는다면 이름은 null product10_Name = (await context.Products .FirstOrDefaultAsync(p => p.Id == 10))?.Name; //13번 제품이 존재하면 가져오고, 없다면 null product13_NotExist = await context.Products .FirstOrDefaultAsync(p => p.Id == 13); //기타 분류에 속하는 상품 개수, 분류가 없다면 null middle_etc_count = (await context.Categories .FirstOrDefaultAsync(c => c.Name == "기타")) ?.ProductCategories.Count; product1_Category_Name = (await context.ProductCategories .FirstOrDefaultAsync(pc => pc.ProductId == 1)) ?.Category.Name; var product4 = (await context.Products .FirstOrDefaultAsync(p => p.Id == 4)); //4번 제품의 이미지 경로 가져오기, 없다면 null product4_PhotoUrl = (await context.Products .FirstOrDefaultAsync(p => p.Name == "노트북1")) ?.ProductImages.FirstOrDefault() ?.PhotoUrl; } #endregion #region 검증(assert) Assert.True( //8번 제품은 있어야만 하고 product8_Exist != null //10번 제품의 이름은 헤드폰2이고 && product10_Name == "헤드폰2" //13번 제품이 존재하지 않아야 한다. && product13_NotExist == null); Assert.True( //기타 분류의 상품 개수는 8개 middle_etc_count == 8 //1번 제품의 분류는 스마트폰 && product1_Category_Name == "스마트폰"); Assert.True( product4_PhotoUrl == "images/products/product_4.jpg"); #endregion } }