0

大きな 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);
}

これを単体テストから外して、このようなコードを実行できるようにするにはどうすればよいでしょうか?

4

1 に答える 1

0

あなたの設定は非常に危険に思えます。さまざまなニーズに合わせて個別のコンソール アプリケーションを作成します。また、本番データを危険にさらすすべての単体テストを削除することをお勧めします。そのような単体テストを持つことは、まったく悪いことです!

于 2011-02-28T10:44:31.380 に答える