Использование app.config в тесте MBunit - PullRequest
3 голосов
/ 04 августа 2010

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

Edit: Я получил поле для привязки к свойству приложения, однако когда я вызываю Properties.Settings.Default.Save();, оно, похоже, ничего не делает. App.exe.config не изменяется и изменения не сохраняются.

Ответы [ 2 ]

3 голосов
/ 04 августа 2010

Смоделируйте, как вы читаете конфигурацию приложения.

В вашем приложении напишите интерфейс и класс, который получает данные из файла app.config.В своем тесте реализуйте интерфейс на фиктивном объекте, который будет каждый раз возвращать известные выходы.

Тестируемый класс должен принимать параметр (для ctor или другого) это объект, который реализует интерфейс.

В вашем реальном коде это будет реальный объект, который читает из app.config.

В тестах это будет фиктивный объект.

2 голосов
/ 05 августа 2010

app.config - это файл, соответствующий файлу MyProgramme.exe.config, который программа читает при запуске. Доступ к нему можно получить через объект Configuration в пространстве имен и сборки System.Configuration.

Properties.Settings.Default соответствует файлу user.config, который сгенерирует ваша программа при вызове Properties.Settings.Default.Save()

Таким образом, включение файла app.config в тесты не повлияет на Properties.Settings.Default.

Подробнее см. Использование настроек

...