我有一些代码如下:
在支付控制器中:
[HttpPost]
public void GeneratePaymentData(IList<int> paymentIds)
{
string paymentSummaryFileName;
var results = _paymentsPort.GetPaymentData(paymentIds, out paymentSummaryFileName);
_fileUtilities.SaveToFile(results, _appSettings.paymentFileSaveLocation, paymentSummaryFileName);
}
所以它的作用是关闭并获取一些支付数据并通过 out 参数返回要保存到的文件的名称。然后它将数据保存到文件中。
一位同事告诉我,我在这里所做的事情非常糟糕。他的理由是我的代码有可能让控制器给保存方法提供错误的文件名。
我不同意这一点,因为我有单元测试来确保 out 参数中的文件名与传递给 SaveToFile 的文件名相同。
他建议我在 GetPaymentData 中进行保存。
我不同意这一点,因为我认为单元测试会更难。目前很容易测试从 GetPaymentData 返回的内容是否正确,但如果此方法没有返回数据而只是将其保存到文件中,这将更加困难。
谁是对的?这只是风格不同的问题,还是这里肯定有人错了?