Подтвердить что ты не робот

Тестирование. Отсутствует строка подключения.

Visual studio создала для меня проект unit test на основе метода (щелкните правой кнопкой мыши добавить тест). Когда я пытаюсь получить доступ к базе данных, я получаю исключение. Удалите этот код, чтобы узнать, что мое соединение:

ConnectionStringSettings connStringSettings = ConfigurationManager.
    ConnectionStrings["myConnectionString"];

но connStringSettings имеет значение null. При проверке коллекция ConnectionStrings имеет счет только одного. Кажется, что я не читаю с моего web.config.

Мой DAL изолирован и не может содержать строку подключения через код. Его строка соединения задается в коде следующим образом:

set
{
    value = System.Configuration.ConfigurationManager.
        ConnectionStrings["myConnectionString"].ConnectionString;
}

Как я могу это решить?

4b9b3361

Ответ 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.