我如何使用Windows服务的API?

时间:2011-02-28 10:30:20

标签: unit-testing api windows-services isolation

我有一个很大的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 :(得分:0)

您的设置听起来非常危险。我会为您的不同需求创建单独的控制台应用程序。我还建议您删除所有危及生产数据的单元测试。进行那种单元测试只是非常糟糕!