我有一个数据库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