-1

次のようなコードがあります。

PaymentsController で:

[HttpPost]
public void GeneratePaymentData(IList<int> paymentIds)
{
  string paymentSummaryFileName;

  var results = _paymentsPort.GetPaymentData(paymentIds, out paymentSummaryFileName);

  _fileUtilities.SaveToFile(results, _appSettings.paymentFileSaveLocation, paymentSummaryFileName);
}

つまり、これが何をするかというと、支払いデータを取得し、out パラメータを介して保存先のファイル名を返すということです。次に、データをファイルに保存します。

私がここでやったことは非常に悪いと同僚に言われました。彼の推論は、私のコードがコントローラが save メソッドに間違ったファイル名を与える可能性を生み出すというものです。

out パラメーターのファイル名が SaveToFile に渡されたものと同じであることを確認する単体テストがあるため、これには同意しません。

彼は、GetPaymentData 内で保存することを提案しています。

単体テストが難しくなると思うので、これには同意しません。現在、GetPaymentData から返されるものが正しいかどうかをテストするのは簡単ですが、このメソッドがデータを返さずにファイルに保存するだけの場合、これは難しくなります。

誰が正しいですか?これは単に異なるスタイルの問題ですか、それとも誰かがここで間違いを犯しているのでしょうか?

4

1 に答える 1

1

独自の単体テストを作成したため、テストと運用コードで同じ誤った仮定を行う傾向があります。単体テストは聖杯ではなく、目的を達成するための手段です。

議論を解決する 1 つの方法: 同僚に、あなたの方法を使用して失敗する単体テストを作成するように依頼します。あなたは両方ともそれから学ぶでしょう。

于 2013-05-23T20:36:11.650 に答える