次のようなコードがあります。
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 から返されるものが正しいかどうかをテストするのは簡単ですが、このメソッドがデータを返さずにファイルに保存するだけの場合、これは難しくなります。
誰が正しいですか?これは単に異なるスタイルの問題ですか、それとも誰かがここで間違いを犯しているのでしょうか?