Как проверить, успешно ли установлено соединение с БД? - PullRequest
3 голосов
/ 26 сентября 2011

Я хочу написать модульный тест, который подтверждает, что строка подключения действительна, так что соединение установлено с базой данных SQL.

если у меня есть:

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

Как я могу установить значение переменной 'conenctionEstablished' в результате проверки на Db с предоставленной 'connectionString'?

Так что я могу использовать его в Assert.

Ответы [ 5 ]

3 голосов
/ 26 сентября 2011

Это не будет «чистый» модульный тест, потому что ваша база данных реальна, но никак. Я бы использовал блок try catch и после открытия соединения выполнил оператор select 1 с помощью ExecuteNonQuery (). В конце блока try установите флаг в значение true.

3 голосов
/ 26 сентября 2011

Вы можете попытаться подключиться в режиме try / catch, а затем установить conenctionEstablished в зависимости от того, будет ли соединение успешным или нет.

2 голосов
/ 26 сентября 2011

есть перечисление с именем Connectionstate , поэтому вы можете утверждать, закрыто ли соединение, открыто ли соединение и т. Д.

Assert.AreEqual(ConnectionState.Connecting, sqlcon.State);
2 голосов
/ 26 сентября 2011

Доступны разные состояния, посмотрите на это:

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);
    }
}
0 голосов
/ 29 января 2015

Мы могли бы скорее проверить, открыто ли соединение, используя следующий код:

using System.Data;

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