C# 数据库连接的单元测试方法

C# 数据库连接的单元测试方法,c#,unit-testing,nunit,C#,Unit Testing,Nunit,有人能建议如何为这种方法编写单元测试方法吗 public virtual void OpenDatabaseConnection(string connectionString) { using (var connection = new SqlConnection(connectionString)) { connection.Open(); } } 单元测试是测试您的代码,而不是第三方的代码。这将是集成测试的一部分 但是,如果您亲自编写了SqlCon

有人能建议如何为这种方法编写单元测试方法吗

public virtual void OpenDatabaseConnection(string connectionString)
{
    using (var connection = new SqlConnection(connectionString))
    {
        connection.Open();
    }
}

单元测试是测试您的代码,而不是第三方的代码。这将是集成测试的一部分

但是,如果您亲自编写了
SqlConnection
类,并且希望测试它是否正常工作,我建议模拟外部依赖项,然后验证在执行
Open
方法时是否调用了外部依赖项(例如数据库驱动程序)


关于您的示例的另一个注意事项是:您显示的方法将打开连接,然后对其进行
Dispose
,因为它周围有
using
语句。换句话说,一旦打开连接,就无法使用该连接,并且该方法本身对外部调用方是不可操作的。

您可以注入某种类型的连接工厂(例如,
Func
),使其返回模拟,然后断言对模拟调用了
Open()
Dispose(


当然,所有这些都是有意义的,如果你真的使用连接,而不是像rae1在回答中正确指出的那样打开然后处理它。

我认为微软已经为你充分测试了所有这些类……为什么你认为需要测试这段代码?@marc_:他想测试连接类,但更确切地说,它在方法中得到了正确的使用。