我有我的单元测试。每种测试方法都在我的系统中测试功能的逻辑单元。在我的单元测试中,外部依赖项(db、文件等)是通过使用 Mocks 和 Fakes 来处理的。
现在我不是 100% 确定我应该如何进行集成测试。我应该重复单元测试并用实际资源(数据库、文件等)替换,还是应该测试更低级别的东西,例如:
1) 可以 ping 数据库
2) 可以检索一条记录
3) 文件是否存在
等...
我的直觉是我应该在这个阶段避免商业逻辑,因为大部分应该在 Unit 中完成,对吧?
谢谢
编辑:我在撰写问题时有点懒惰,我还想知道的是,如果我需要在集成阶段测试 biz 逻辑,那么我应该如何设置我的测试套件以最大限度地减少测试代码重复。举个例子:
[TestMethod] //Unit Tests
public void CanGetData()
{
IRepository rep = new MockRepository();
var result = rep.GetData();
Assert.IsTrue(result != null)
}
[TestMethod] //Integration Test
public void CanGetData()
{
IRepository rep = new Repository(); //real repository
var result = rep.GetData();
Assert.IsTrue(result != null)
}
哪种测试结构适合您?您是否直接在集成项目中使用单元测试程序集并注入正确的资源?