Как использовать API службы Windows? - PullRequest
0 голосов
/ 28 февраля 2011

У меня большое приложение-служба Windows. Он выполняет действия на временной основе. Иногда мне нужно иметь возможность использовать некоторые его функции в отрыве от остальной части приложения. В настоящее время у меня есть батарея «модульных тестов», которые обращаются к различным источникам и выполняют желаемую функциональность. Моя проблема в том, что это не модульные тесты, а способ, которым мы выставляем API. Если мы запустим все модульные тесты в проекте, мы повредим некоторые из наших производственных данных.

Мой вопрос: как мне получить доступ к некоторым функциям приложения без юнит-тестирования? Я думал о чем-то вроде переводчика, который можно назвать различными частями функциональности, но я не совсем уверен, с чего начать.

Примером модульного теста в нашем коде будет:

[TestMethod]
public void TransferFunds()
{
    int accountNumberTo = 123456;
    int accountNumberFrom = 654321;
    var accountFrom = Store.GetAccount(accountNumberFrom);
    var accountTo = Store.GetAccount(accountNumberTo);
    double amountToTransfer = 1000;
    DateTime transactionDate = new DateTime(2010,01,01);
    Store.TransferFunds(accountFrom, AccountTo, amountToTransfer, transactionDate);
    var client = BankAccountService.Client();
    client.Contribute(accountNumberTo, amountToTransfer, transactionDate);
    client.Contribute(accountNumberFrom, amountToTransfer, transactionDate);
}

Как мы можем убрать это из модульных тестов, но при этом иметь возможность запускать такой код?

1 Ответ

0 голосов
/ 28 февраля 2011

Ваша настройка звучит очень опасно. Я бы создал отдельные консольные приложения для ваших разных нужд. Я бы также удалил, рекомендую удалить все юнит-тесты, которые ставят под угрозу ваши производственные данные. Подобные юнит-тесты просто плохи!

...