单元测试的基本问题

时间:2011-09-22 11:45:49

标签: c# unit-testing rhino-mocks

我有一个这样的课 -

public class MyClass : ISomeInterface
{
        public MyClass(string connString)
        {
            // set conn string on a private member
        }


       // interface methods
       public CreateDb(string dbName) {...}

       public DropDb(string dbName) {...}

       public string GetLastError() {...}
}

它是遗留代码的一部分,我必须编写UnitTests。现在,如果我想为这个类编写测试,我该如何进行,以便覆盖100%测试覆盖率的所有公共方法? 有人可以提供一个小样本吗?

编辑 - CreateDb和DropDb捕获SqlException并设置错误消息。错误消息通过公共接口方法GetlastError()

公开

注意:我正在使用RhinoMocks& MSTest的

2 个答案:

答案 0 :(得分:0)

班上有三种方法。

您必须为三种方法编写单元测试。

有关

public <Returntype> MyClass(string ConString)
{

}

应至少进行两次单元测试。

1)当ConString为Null或Empty时,代码会执行什么操作。如果它为null或为空,则必须捕获异常

2)当连接字符串正确时,您将显示的最后一个语句或确认是什么。

有关RhinoMocks Link

的更多信息

答案 1 :(得分:0)

假设您的班级创建了一些真正的数据库,您将有两个选项来测试此类:

  

      
  1. 让类创建并释放真正的数据库,并让测试声明DB是按预期创建的。
  2.   
  3. 使用数据库Mock,让测试断言对模拟的调用是正确的。如果您想使用此选项,您还可以选择:

         
        

    一个。不要更改您的代码并使用支持方法调用interecption的Mocking Framework,例如TypeMock     湾将代码更改为具有DB(AkA Dependancy Injection)接口的c'tor或属性,并使用RhinoMocks模拟数据库接口。

  4.     

      

希望它有所帮助,也许你可以提供更多细节问题,所以答案可能更详细: - )