public List<int> GetPortfolioList()
{
using (var connection = new SqlConnection("<connectionString>"))
using (var command = new SqlCommand("SELECT * FROM Portfolio", connection))
{
connection.Open();
var portfolioTable = SqlHelper.GetDataTable(command);
var portfolios = from DataRow row
in portfolioTable.Rows
select int.Parse(row["Portfolio"].ToString());
return portfolios.ToList();
}
}
这是一个用于检索投资组合列表的SQL DAL提供程序方法,如其名称(和代码)所示。由于集成测试的数据库表包含一组相当静态的数据,因此我们可以对多个期望进行断言,例如: - 不会为空 - 包含某些已知值 - 不包含重复项
经过同行评审后,有人坚持认为该代码没有得到适当的测试(在隔离状态下),因为它依赖于数据库访问。考虑到大部分价值在于确保该方法从保证状态的数据库返回数据,我无法看到模拟数据库调用以编写该方法的单元测试的价值。我是否漏掉了什么?