2015-07-30 13 views
2

Для ниже метода, который я хочу передать в макете из DbProviderFactories класса, но не могу, потому что это статический класс:Как проверить DbProviderFactories с использованием NUnit

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?

ответ

1

Вы можете создать свою собственную нестатическую оболочку для DbProviderFactory, который реализует свой собственный интерфейс и вызывает статический метод:

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

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

Если теперь вводить это в свой класс, который выставляет GetConnection() вы можете издеваться реализацией интерфейс по мере необходимости.

+0

отличная помощь в его великолепной внешности .. скоро вернется – user2151264