В .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, и это гарантировано настолько, насколько это возможно в программном обеспечении. Просто убедитесь, что вы используете этот шаблон везде, где вы используете соединения.
В модульном тестировании «тестируемыми модулями» являются методы / функции. Вы проверяете, что функция работает так, как вы ожидаете, и ничего более. Если вы хотите конкретно проверить, закрыто ли соединение, то для этого нужно написать функцию, которая закрывает соединение, и проверить это.