Как предотвратить общение приложения с внешним миром во время отладки / тестирования? - PullRequest
0 голосов
/ 27 марта 2012

У меня есть два отдельных приложения (оба являются частью одной системы), которые совместно используют общую базу данных. Одно приложение представляет собой «шлюз», отвечающий за связь с внешним миром, а другое - клиент рабочего стола, который локальные пользователи локальной сети используют для чтения / изменения / обновления данных в локальной базе данных.

Через определенные промежутки времени приложение шлюза будет загружать новые данные в локальную базу данных из различных веб-сервисов. Аналогично, приложение-шлюз будет сканировать изменения в локальной базе данных (сделанные пользователями через клиент рабочего стола) и загружать эти изменения в соответствующие веб-службы.

В работе находятся две базы данных, одна для производственного использования и одна для тестирования / отладки. Шлюз переключается между ними, изменяя строку подключения в app.config.

При тестировании приложения-шлюза я бы хотел, чтобы оно работало только для чтения; то есть он сможет загружать новые данные в базу данных (тест / отладка), но он не сможет загружать любые изменения обратно в веб-службу.

Способ, которым я сейчас это делаю, заключается в использовании директивы #IF DEBUG в тех местах, где приложение будет загружать данные следующим образом:

public void DetectAndUploadChanges()
{
    Uploader Up = new Uploader();
    Up.DetectChanges();

    #IF !DEBUG
        Up.UploadChanges();
    #END IF
}

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

Есть ли лучший / альтернативный способ сделать это?

1 Ответ

1 голос
/ 27 марта 2012

Вы можете использовать DI (Внедрение зависимостей), где вы вводите данные во время выполнения.

...