0

测试资源管理器中的单元测试是否应该连接到数据库?

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

4

1 回答 1

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);

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

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

于 2015-11-04T22:17:23.633 回答