Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用nunit测试DbProviderFactorys_C#_Unit Testing_Nunit_Rhino Mocks_Dbproviderfactories - Fatal编程技术网

C# 如何使用nunit测试DbProviderFactorys

C# 如何使用nunit测试DbProviderFactorys,c#,unit-testing,nunit,rhino-mocks,dbproviderfactories,C#,Unit Testing,Nunit,Rhino Mocks,Dbproviderfactories,对于下面的方法,我想传入一个模拟的dbProviderFactorys类,但不能,因为它是一个静态类: private DbConnection GetConnection() { var dbProviderFactory = DbProviderFactories.GetFactory(_name); try { var dbConnection = dbProviderFac

对于下面的方法,我想传入一个模拟的
dbProviderFactorys
类,但不能,因为它是一个静态类:

    private DbConnection GetConnection()
     {
        var dbProviderFactory = DbProviderFactories.GetFactory(_name);

            try
            {
                var dbConnection = dbProviderFactory.CreateConnection();
                if (dbConnection == null) return null;
                dbConnection.ConnectionString = _connectionString;
                return dbConnection;
            }
            catch (Exception)
            {
                return null;
            }
        }

如何测试我的代码/如何模拟
DbProviderFactories

您可以为
DbProviderFactory
创建自己的非静态包装器,该包装器实现您自己的接口并调用静态方法:

public interface IDbProviderFactories
{
    DbProviderFactory GetFactory(string name);
}

public class MyDbProviderFactories : IDbProviderFactories
{
    public DbProviderFactory GetFactory(string name)
    {
        return DbProviderFactories.GetFactory(name);
    }
}

如果您现在将其注入到公开
GetConnection()
的类中,您可以根据需要模拟接口的实现。

great help它看起来很棒。。我很快就会回来的