【问题标题】:How to test DbProviderFactories using nunit如何使用 nunit 测试 DbProviderFactories
【发布时间】:2015-07-30 13:15:05
【问题描述】:

对于下面的方法,我想传入 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

【问题讨论】:

    标签: c# unit-testing nunit rhino-mocks dbproviderfactories


    【解决方案1】:

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

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

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

    【讨论】:

    • 帮助它看起来很棒..很快就会回复你
    猜你喜欢
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多