У меня большое приложение-служба 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);
}
Как мы можем убрать это из модульных тестов, но при этом иметь возможность запускать такой код?