ReportingCycleDelivery

ReportingCycleDelivery

我在使用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])));


很难确切地说出为什么没有看到ReportingCycleDeliveryRepositoryReportingCycleDelivery的代码会出现此错误的原因。

09-25 18:55