我刚刚读完“使用 C# 进行专业测试驱动开发”,并一直在尝试找到一种方法来在我的代码中实现 100% 的覆盖率。这一切都很好,直到我找到一个充满了实现如下方法的存储库类:
public IEnumerable<MyDataContract> LoadConditional(bool isCondition)
{
const string QUERY = @"SELECT ...fields... FROM MyData WHERE [IsCondition] = @IsCondition";
return DataAccessor.ReadMyContracts(QUERY, isCondition); // something, something...
}
我一直在考虑这个问题,并且无法在互联网上找到直接回答这个问题的答案。
我读到的东西表明与 SQL 相关的业务将存在于另一个程序集中。不过我不需要这个,也不相信我应该去那里。而且,从代码覆盖率来看,这是一个非常肤浅的变化。
我读过你可以为你的单元测试连接数据库(我以前做过)。但这很好……我不知道,感觉不对。测试速度很慢,并且维护量显着增加。
我的直觉是,如果没有我提到的最后一点,这种方法就不能进行单元测试。我应该如何看待这个问题?