我遇到了NSubstitute的问题。 我有这个简短的代码:
ReportingCycleDeliveryRepository
.When(f => f.Add(Arg.Any<ReportingCycleDelivery>()))
.Do(x => RepCycleDeliveries.Add((ReportingCycleDelivery)x[0]));
因此,当使用任何ReportingCycleDelivery参数调用my(void)方法ReportingCycleDeliveryRepository.Add()
时,它应该将此项添加到我的RepCycleDeliveries
列表中。
但相反,它会引发异常:
NSubstitute.Exceptions.AmbiguousArgumentsException
“无法确定要使用的参数规范。 请使用相同类型的所有参数的规范。“
为什么?为什么NSubstitute不能确定使用正确的参数规范?我明确提供了一个提示,参数可以是任何ReportingCycleDelivery
项。
答案 0 :(得分:1)
您应该能够将代码更改为以下代码并按照您希望的方式运行:
ReportingCycleDeliveryRepository
.When(f => f.Add(Arg.Do<ReportingCycleDelivery>(
x => RepCycleDeliveries.Add(x[0])));
如果没有看到ReportingCycleDeliveryRepository
和ReportingCycleDelivery
的代码,很难确切地说出为什么会出现此错误。