请原谅,如果这个问题之前已被问到。 我正处于寻找示例的阶段正在返回太多令我困惑的结果。犀牛嘲笑访问数据库
我是新来的犀牛嘲笑,我知道有大量的例子,但界面 - 虚拟推荐有点混淆我。
如果我的类可以正常工作(但我有义务单元测试每行代码),我是否必须修改我的代码以满足单元测试?或者它应该是另一种方式?
为了达到这一点,我有以下班,我想嘲笑它。
public class DatabaseOperation
{
public IList<T> GetRecords<T>(string connectionString, string storedProcedureName)
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using (var command = connection.CreateCommand())
{
command.CommandType = CommandType.StoredProcedure;
command.CommandText = storedProcedureName;
var reader = command.ExecuteReader();
var fillSelection = new FillSelection<T>();
return fillSelection.GetSelection(reader);
}
}
}
}
我该怎么做?
你,你停止单元测试的地方画一条线。就我个人而言,我倾向于将上面的标准样板代码视为不需要测试。如果您必须'测试'它,您需要模拟SQLConnection并将其注入到此代码中,以便测试代码与它的交互方式。但我认为这会浪费时间。更重要的问题是你如何知道SP应该做什么。 – 2013-04-09 21:22:04
问题是代码质量控制代码被监控,并且没有技术用户,这个工具的结果是唯一的参考。如果我不单元测试所有的代码,那么质量指标将呈红色。所以我必须测试它。 (这是许多其他与数据库交互的代码的一部分,所以我希望能为此解决方案,并试图找出其余的部分。 – Maro 2013-04-09 21:26:28
然后在代码中注入SqlConnection模拟代码。如果我没有正确的记忆,SqlConnection上有一个IDbConnection接口,这可能是你应该基于的模拟on – 2013-04-09 22:17:23