Модульное тестирование MVC с Linq to Sql - PullRequest
2 голосов
/ 02 октября 2009

У меня есть контроллер, который работает на моем сайте, но не работает во время модульного тестирования. Это довольно просто и зависит от Linq to Sql для возврата коллекции объектов JSON.

Тест не пройден, поскольку DataContext не может найти строку подключения при вызове извне проекта MVC.

Я посмотрел в автоматически сгенерированном коде:

public DC():
            base(global::System.Configuration.ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString, mappingSource)
    {
        OnCreated();
    }

Веб-проект может найти запись «myConnectionString» в web.config, но тестовый проект не может ее найти. Я получил сообщение об ошибке:

Test method MyMVCApp.Controllers.HomeControllerTest.IndexShouldReturnIssues threw exception:  System.NullReferenceException: Object reference not set to an instance of an object..

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

Спасибо, John

1 Ответ

1 голос
/ 02 октября 2009

Добавьте строку подключения в файл app.config в вашем проекте модульного тестирования.

FWIW, на самом деле я не использую реальную базу данных в своих модульных тестах (хотя я использую в интеграционных тестах). Я написал о реализации LINQ-to-SQL , которая позволяет издеваться над моим блогом некоторое время назад, если вам нужна дополнительная информация.

...