使用本地引用的测试方法
本文关键字:测试方法 引用 | 更新日期: 2023-09-27 18:13:12
在我们的环境中,我们使用自定义数据访问来访问遗留的Oracle数据库。它允许我们调用存储过程,并以DataTable的形式获得结果,或者如果返回的数据只有一行数据,则以名称/值对列表的形式获得结果。它要求我们在每次调用时都从这个库实例化一个新对象,然后确保它在完成时被处理掉。
例如,我们可以这样做:
DataReader reader = new DataReader("StoredProcedureName");
reader.AddParameter(name, DbType.Array, ParameterDirection.Input, data);
DataTable dt;
try
{
dt = reader.Open();
}
finally
{
reader.Dispose();
}
我的问题是我不确定如何测试使用此库进行数据库调用的方法。我对单元测试比较陌生,并且正在努力开始使用它。我已经开始使用moq,并为我的其他应用程序代码编写了一堆测试用例。我不知道如何模拟数据库库。构建一个工厂对象,它将创建数据阅读器的新实例,然后模拟工厂,这有意义吗?
您将无法"单元"测试代码的最低级别(即围绕ADO的薄包装)。(你正在调用你的数据访问层)。每一个其他层你都可以使用mock来隔离它,但是为了测试最低层,你应该只写"系统"测试,这些测试将真正地碰到一个真实的数据库(这将涉及到设置它,以便你可以在一个已知的状态下重新创建数据库,作为测试运行的一部分-数据库项目非常适合这个)。