Как написать регистр устройства для удаленного подключения к базе данных в веб-приложении ASP - PullRequest
0 голосов
/ 18 ноября 2011

Я новичок в модульном тестировании для веб-приложений У меня есть функция, которая создает соединение с удаленной базой данных MySQL и выполняет некоторые операции над ней. Я хочу иметь контрольный пример, который проверяет соединение закрыто или нет после операций над базой данных. например
fun1()
{
ODBCConnection con = new ODBCConnection(connString);
con.open();
}
в вышеуказанной функции соединение не закрыто? как мне это проверить? может ли кто-нибудь помочь?

1 Ответ

0 голосов
/ 18 ноября 2011

В .Net, как правило, лучше открывать свои подключения непосредственно перед их использованием. Таким образом, вместо создания (и тестирования) функции, которая подключается к базе данных, вы создаете и тестируете функцию, которая возвращает правильную строку подключения. У вас также есть эталонная база данных для вашей среды тестирования, и вы создаете свои методы доступа к данным и создаете их собственное соединение и тестируете их с вашей эталонной базой данных, чтобы получить правильные результаты.


Хорошо, основываясь на вашем комментарии, я могу вам помочь. Поскольку вы будете открывать и закрывать соединение в той же функции (как и вы), вы можете сделать это:

public void fun1()
{
    using (ODBCConnection con = new ODBCConnection(connString))
    {
        con.open();
        //use the connection here
    }
    //connection is closed here because of the using block, even if an exception is thrown
}

Нет необходимости проверять, закрывается ли соединение в приведенном выше коде. Он будет своевременно закрыт с помощью блока using, и это гарантировано настолько, насколько это возможно в программном обеспечении. Просто убедитесь, что вы используете этот шаблон везде, где вы используете соединения.

В модульном тестировании «тестируемыми модулями» являются методы / функции. Вы проверяете, что функция работает так, как вы ожидаете, и ничего более. Если вы хотите конкретно проверить, закрыто ли соединение, то для этого нужно написать функцию, которая закрывает соединение, и проверить это.

...