繁体   English   中英

如何使用 nunit 测试 DbProviderFactories

[英]How to test DbProviderFactories using nunit

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

    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()类中,您可以根据需要模拟接口的实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM