如何测试在 NSubstiente 中忽略参数参数的调用
本文关键字:参数 NSubstiente 调用 何测试 测试 | 更新日期: 2023-09-27 18:36:06
我有如下所示的代码:
eventPublisher.Publish(new SpecificEvent(stuff),
EventStreams.Stream1,
EventStreams.Stream2);
它调用一个定义为:
Publish<T>(T eventToPublish, params EventStream[] streams) where T : IEvent;
在我想测试的东西中。此事件发布是我要测试的内容中发生的最重要的事情,但我对测试它发布到的事件流不感兴趣。我怎样才能在 NSubstitute 中做一个替代品来测试它是否用适当的事件调用,而不关心参数?到目前为止,我有:
eventPublisher.Received(1).Publish(Arg.Any<SpecificEvent>());
当然,这与具有两个流的调用不匹配。有没有办法使用 NSubstitute 匹配参数参数,忽略传入的参数数量?
Params
使方法能够接收可变数量的参数。在params
中,传递给方法的参数被编译器更改为临时数组中的元素。然后在接收方法中使用此数组。
您可以使用 Arg.Any<EventStream[]>
来匹配 params 参数,忽略传入的参数数。
eventPublisher.Received(1).Publish(Arg.Any<SpecificEvent>(), Arg.Any<EventStream[]>())