如何测试是否成功建立了与Db的连接?

时间:2011-09-26 07:56:29

标签: c# .net unit-testing ado.net connection

我想编写一个单元测试,断言连接字符串是有效的,以便与SQL Db建立连接。

如果我有:

string connectionString = GetCOnenctionString();
bool conenctionEstablished = false;

如果通过提供'connectionString'检查Db,我如何设置'conenctionEstablished'变量的值?

这样我就可以在断言中使用它。

5 个答案:

答案 0 :(得分:3)

您可以尝试连接try / catch,然后根据连接是否成功设置conenctionEstablished。

答案 1 :(得分:3)

它不会是一个“纯粹”的单元测试,因为你的数据库是真实的,但无论如何。我会使用try catch块,在打开连接后,使用ExecuteNonQuery()执行“select 1”语句。在try块的末尾,将标志设置为true。

答案 2 :(得分:2)

有不同的状态,请看:

private static void OpenSqlConnection(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
        Console.WriteLine("State: {0}", connection.State);
    }
}

答案 3 :(得分:2)

有一个名为Connectionstate的枚举 所以你可以断言连接是否已关闭,打开连接等等。

Assert.AreEqual(ConnectionState.Connecting, sqlcon.State);

答案 4 :(得分:0)

我们宁可通过使用以下代码检查连接是否打开:

using System.Data;

if (conn.State == ConnectionState.Open)
{
    return true;
}
else 
{
    return false;
}