Тестирование. Отсутствует строка подключения.
Visual studio создала для меня проект unit test на основе метода (щелкните правой кнопкой мыши добавить тест). Когда я пытаюсь получить доступ к базе данных, я получаю исключение. Удалите этот код, чтобы узнать, что мое соединение:
ConnectionStringSettings connStringSettings = ConfigurationManager.
ConnectionStrings["myConnectionString"];
но connStringSettings
имеет значение null. При проверке коллекция ConnectionStrings имеет счет только одного. Кажется, что я не читаю с моего web.config.
Мой DAL изолирован и не может содержать строку подключения через код. Его строка соединения задается в коде следующим образом:
set
{
value = System.Configuration.ConfigurationManager.
ConnectionStrings["myConnectionString"].ConnectionString;
}
Как я могу это решить?
Ответы
Ответ 1
Добавьте файл App.config
в свой проект модульного тестирования и скопируйте строку подключения из Web.config
.
Обновление: лучшее решение
Хотя добавление конфигурации решит насущную проблему, оно все равно приведет к модульным тестам в зависимости от фактического соединения с базой данных, что не очень хорошо. Лучший способ решить эту проблему - полностью смоделировать DAL и передать его службам, которые его используют.
Microsoft дает некоторые рекомендации по этому вопросу здесь. Установка занимает немного больше времени, но позволяет тестам быть гораздо более содержательными и завершенными.
Ответ 2
Отлично, это сработало для меня. Я добавил файл App.config в проект unit test. Но убедитесь, что мы следим за synatx, иначе он будет генерировать исключение.
<connectionStrings>
<add name="test" connectionString="" providerName="System.Data.SqlClient" />
<add name="db" connectionString=""" providerName="System.Data.SqlClient"/>
</connectionStrings>
Ответ 3
Добавьте строку подключения в файл unit test app.config. Проект unit test не будет иметь доступ к вашей веб-конфигурации веб-проекта.
Ответ 4
Другое решение - перейти к страницам свойств решения (solution- > properties)
Startup Project - проверьте, что один проект запуска - это тот, у кого есть конфиг.
Выберите, ok - done.