-1

我想对以下代码进行单元测试。现在我正在将 NUnit 与 Rhino Mock 一起使用。

注意:所有的 NUnit 测试用例都不应该做任何数据库操作

 interface IdbOperation  
 {
      int  insert();
 }

 public class databaseactivity:IdbOperation 
 { 
    public databaseactivity()
    {
      verifyDBConnection(); 
    }

    void verifyDBConnection() 
    { 
      DbManager dbManager=new  DbManager();

      if(dbManager.state()!=True)   
      {
        Throw new DatabaseException();
      }
    }

    public int insert(bo obj)   
    {   
      Serviceclient  serviceClient=new  Serviceclient(); 
      serviceClient.insert(obj);
    }
 }

在上面的代码中,我想为插入方法编写一个单元测试用例。我尝试了很多方法但无法模拟。所以请任何人帮助我模拟插入方法。尽快

您也可以向我推荐任何其他模拟框架。

4

1 回答 1

0

那这个呢?

public databaseactivity(IDbManager dbManager = null)
{
  DbManager dbManager = dbManager ?? new DbManager();
  // ...
}

如果您需要重新创建实例(就像 似乎是这种情况ServiceclientFactory),您需要注入一个工厂(我会尽量避免这种情况,因为它会使事情变得更加复杂):

public databaseactivity(ServiceclientFactory serviceClientFactory = null, /*...*/)
{
  // ...
  this.serviceClientFactory = serviceClientFactory ?? new DefaultServiceClientFactory();
}

public int insert(bo obj)   
{   
  serviceClient = this.serviceClientFactory.CreateServiceClient(); 
  serviceClient.insert(obj);
}
于 2013-06-10T08:54:00.850 回答