【发布时间】:2016-09-19 21:22:49
【问题描述】:
在 C# 中对 DataRows 进行单元测试的最佳方法是什么?
我有一个类架构,其中所有数据都存储在 DataRow 变量中。这个怎么运作?例如,当我双击客户列表中的一条记录时,我将客户表中的整个记录加载到 _dataRow 变量中。 问题是 Customer 表有超过 200 列。
问题是,我是否需要手动创建 DataRow 变量并填充每个测试方法中的所有列?或者也许有一些模拟工具来模拟所有 DataRow 列?
class Customer
{
private DataRow _dataRow;
public Customer(DataRow dataRow)
{
_dataRow = dataRow;
}
private string GetCustomerName()
{
return Convert.ToString(_dataRow["Name"]);
}
private string GetCustomerAddress()
{
return Convert.ToString(_dataRow["Street"]) + " " + Convert.ToString(_dataRow["House_No"]);
}
private int GetAge()
{
DateTime birthdate = Convert.ToDateTime(_dataRow["Birthdate"]);
DateTime today = DateTime.Today;
int age = today.Year - birthdate.Year;
if (birthdate > today.AddYears(-age))
age--;
return age;
}
}
【问题讨论】:
-
为什么不能只使用带有记录的硬编码数据表并在单元测试中注入数据行
标签: c# winforms unit-testing mocking