我正在使用 NSubstitute 编写测试用例来检查某个方法在我们的逻辑中仅被调用一次。
await _memberAddUpdateService.Received(1).UpdateMemberNameAsync(member);
await _customerAddUpdateService.DidNotReceive().AddCustomerAsync(member.Customer!);
await _customerAddUpdateService.Received(1).UpdateCustomerAsync(member.Customer!);
await _customerAddUpdateService.DidNotReceive().UpdateCustomerAsync(member.RfmsCustomer);
此检查通常在大多数情况下都有效,但偶尔会失败,表明任一方法被调用两次。唯一的问题是这些方法在我们的整个项目中只调用一次,并且没有循环会导致该方法被再次调用。
NSubstitute 的 Received 调用会出现这样的问题吗?还是我们的代码设计的某个方面可能导致它多次调用这些方法?
很可能是代码中多次调用方法的原因。