关于单元测试的基本问题

本文关键字:问题 单元测试 | 更新日期: 2023-09-27 18:09:15

我有一个这样的类-

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() {...}
}

这是遗留代码的一部分,我必须编写unittest。现在,如果我只想为这个类编写测试,我该如何进行,以100%的测试覆盖率覆盖所有的公共方法?谁能在课堂上提供一个小样本?

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

公开

注意:我使用的是RhinoMocks &MSTest

关于单元测试的基本问题

类中有三个方法。

你必须为三个方法编写单元测试。

public <Returntype> MyClass(string ConString)
{
}

至少应该有两个单元测试。

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

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

关于RhinoMocks的更多信息Link

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

  1. 让类创建并释放真正的DB,并让测试断言DB是按预期创建的。
  2. 使用DB模拟,并让测试断言对模拟的调用是正确的。如果您想使用此选项,您必须再次选择:

    。不要修改你的代码,使用支持方法调用拦截的Mocking框架,比如TypeMock。
    b.修改你的代码,让它有一个c'tor或属性,它接受DB的接口(又名依赖注入),并使用RhinoMocks来模拟DB接口。

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