我有一個數據庫2個表和結構看起來像單元測試的WebAPI用自定義模型
學生[ID,姓名,電子郵件地址,性別]
測試[ID,StudentId,名稱,狀態]
UserSummary [ID,姓名,電子郵件地址,性別,測試名,TestStatus]
所以在單元測試的做法,應該我驗證? db模型還是自定義模型?
我的API端點返回列表UserSummary
作爲JSON返回到前端。
[TestMethod]
public void GetAllStudents()
{
IQueryable<Student> masterdata = new List<Student>
{
new Student {StudentID=1, Firstname = "AAA",Active_InActive=1 },
new Student {StudentID=2, Firstname = "BBB" ,Active_InActive=1 },
new Student {StudentID=3, Firstname = "ZZZ" ,Active_InActive=1 },
}.AsQueryable();
var mockSet = new Mock<DbSet<Student>>();
mockSet.As<IQueryable<Student>>().Setup(m => m.Provider).Returns(masterdata.Provider);
mockSet.As<IQueryable<Student>>().Setup(m => m.Expression).Returns(masterdata.Expression);
mockSet.As<IQueryable<Student>>().Setup(m => m.ElementType).Returns(masterdata.ElementType);
mockSet.As<IQueryable<Student>>().Setup(m => m.GetEnumerator()).Returns(masterdata.GetEnumerator());
var mockContext = new Mock<SchoolDbEntities>();
mockContext.Setup(c => c.Students).Returns(mockSet.Object);
var service = new StudentDbHandler(mockContext.Object);
var students = service.GetStudents(); //it returns list of Student
//So should i test Db models are same or Custom List<UserSummary> models are same?
}
所以,如果我要驗證自定義模型,我應該嘲笑定製模型以及從起訂量實體框架數據?有人可以建議任何教程解釋直接處理除Db模型以外的自定義模型數據的方式嗎?
問題是我是否應該驗證db模型或我的自定義模型?如果它的自定義模型,我應該如何從moq列表中獲取它們?在單元測試項目中,我應該將其轉換爲 –
您測試依賴於其他服務的服務X.您應該問的問題是「我需要服務Y來測試服務X還是使用模擬服務Y」。你不應該問「我需要測試我的自定義模型嗎?」您的自定義模型的存在可以幫助您測試其他內容。 – mvera