2

我在使用 NSubstitute 时遇到问题。我有这个短代码:

ReportingCycleDeliveryRepository
.When(f => f.Add(Arg.Any<ReportingCycleDelivery>()))
.Do(x => RepCycleDeliveries.Add((ReportingCycleDelivery)x[0]));

ReportingCycleDeliveryRepository.Add()因此,当使用任何 ReportingCycleDelivery 参数调用我的 (void) 方法时,它应该将此项目添加到我的RepCycleDeliveries列表中。

但相反,它会引发异常:

NSubstitute.Exceptions.AmbiguousArgumentsException

“无法确定要使用的参数规范。请对同一类型的所有参数使用规范。”

这是为什么?为什么 NSubstitute 不能确定要使用的正确参数规范?我清楚地提供了一个提示,即论点可以是任何ReportingCycleDelivery项目。

4

1 回答 1

2

您应该能够将您的代码更改为以下内容,并让它按照您希望的方式工作:

ReportingCycleDeliveryRepository
    .When(f => f.Add(Arg.Do<ReportingCycleDelivery>(
        x => RepCycleDeliveries.Add(x[0])));

ReportingCycleDeliveryRepository如果没有看到and的代码,很难准确地说出为什么会出现这个错误ReportingCycleDelivery

于 2013-03-14T19:01:58.800 回答