CreateDatabaseConnection方法的单元测试

时间:2011-04-06 13:04:28

标签: c# unit-testing mocking methodology

使用:与VS2010集成的Microsoft单元测试框架

我有一个实现此接口的类。

public interface IConnectionManager
{
    IDbConnection OpenDatabase(string path);
    void CloseDatabase();
}

我想为这些方法创建一组测试,但不太确定如何继续。

测试此功能的最佳方法是什么?

感谢。

编辑:

我的OpenDatabase实现看起来像这样:

    public OleDbConnection OpenDatabase (string p_path)
    {
        if (Library.StringOperations.IsNullOrEmpty (p_path))
            return null;

        bool error = false;
        string  connectionString= @"CONNECTION STRING HERE";
        try
        {
            OleDbConnection con= new OleDbConnection (connectionString);
            con.Open ();
        }
        catch (Exception)
        {
            error = true;
        }

        if (!error)
            return con;

        return null;
    }

根据@rdkleine的建议,我想测试返回的连接。

几个问题:

  1. 我是否需要创建一个新的OleDbConnection对象来与我返回的对象进行比较,还是应该检查我返回的连接对象属性?

  2. 在这种情况下可以使用Mock对象吗?

  3. 考虑到我正在测试与数据库的连接,这仍然是单元测试集成测试吗?

  4. 再次感谢。

1 个答案:

答案 0 :(得分:4)

开始简单。

  • 测试返回连接
  • 测试路径存在
  • 测试路径不存在
  • 测试无法连接
  • 测试可以连接

Read this book about TDD :)