我有一个大的 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);
}
我们如何才能将其从单元测试中移出,但仍然能够运行这样的代码?