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