Test Explorer中的单元测试是否应该连接到数据库?

时间:2015-11-04 22:13:52

标签: c# unit-testing test-explorer

Test Explorer中的单元测试是否应该连接到数据库?

我可以在测试用例之外执行相同的代码,并且它可以正确地插入到数据库中。尝试在Visual Studio测试资源管理器中编写的单元测试中测试存储库(执行插入)时,插入不会发生。

1 个答案:

答案 0 :(得分:2)

单元测试应该测试您的业务层逻辑/方法。它不应该插入数据库。如果需要,您应该使用假数据访问层(使用模拟库,如Moq / FakeItEasy)。

使用Moq库的快速示例。

var repoMoq = new Mock<IRepository>();
repoMoq.Setup(s=>s.GetStudentName(It.IsAny<int>)).Returns("Test Student");
var bl = new StudentManagementBusinessLayerClass(repoMoq.Object);
// To do : Assert Something now.
// Ex : bl.GetStudent(234);

在这里,您正在模拟您的数据访问层,IRepository的GetStudentMethod在从单元测试中调用时返回“TestStudent”。

端到端集成测试是执行完整周期所需的,它将数据插入到数据库中,一旦测试完成,删除/回滚测试数据。