Как избежать репликации параметров конфигурации из web.config в модульных тестах - PullRequest
3 голосов
/ 29 декабря 2011

У меня есть веб-проект, который читает несколько ключей конфигурации из web.config. Эти настройки связаны с правилами, реализованными в проекте. Когда модульный тест вызывает классы модели в веб-проекте, он заканчивает тем, что читает app.config из проекта модульного теста. Поэтому я должен скопировать ключи в app.config в проекте модульного теста. Лучше ли перенести информацию о конфигурации во внешний файл в веб-проекте, чтобы избежать копирования информации о конфигурации?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 30 декабря 2011

Я бы использовал класс-оболочку, который возвращает эти настройки.Пример ниже

public interface ISettingStorage
{
    string GetSetting(string name);
}

public class SettingStorage : ISettingStorage
{
    public string GetSetting(string name)
    {
        // read the actual setting from the web.config
    }
}

Таким образом, вы можете смоделировать ISettingStorage в своих модульных тестах, чтобы вернуть любые значения, которые вы хотите.Это также немного ускорит юнит-тесты, потому что нет дискового ввода-вывода.

0 голосов
/ 29 декабря 2011

При тестировании веб-приложений я выполняю то же самое, что и вы, копируя настройки в файл app.config тестового проекта.В этом нет ничего плохого.

В качестве альтернативы можно было бы смоделировать настройки конфигурации, где они будут использоваться, но это может быть громоздким, но все же это правильный подход.Я стараюсь быть проще и создавать файл app.config.

...