【发布时间】:2016-05-13 10:07:02
【问题描述】:
我在一个数据库中有 2 个表,结构看起来像
学生 [ID、姓名、电子邮件、性别]
测试 [Id,StudentId,Name,Status]
UserSummary [Id, Name , Email, Gender,TestName,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?
}
所以如果我必须验证自定义模型,我是否也应该从 Moq 实体框架数据中模拟自定义模型?有人可以建议任何教程解释直接处理 Db 模型以外的自定义模型数据的方式吗?
【问题讨论】:
标签: c# unit-testing asp.net-web-api moq