如何使用最小起订量 C 模拟具有 GUID 参数的序列#

How to mock a Sequence with a GUID Parameter using moq C#

提问人:bilpor 提问时间:11/10/2023 最后编辑:marc_sbilpor 更新时间:11/10/2023 访问量:29

问:

我有以下具体代码:

 var allBookedPos = await _dataService.GetAllBookingsForVendorInAwitingApproval(purchaseOrder.VendorCode);

 foreach (var booking in allBookedPos)
 {
     // get the purchase order
     var po = await _purchaseOrderDataService.GetPurchaseOrderOnlyByIdAsync(booking.PurchaseOrderId);
 }

我已经设置了我的第一个模拟来填充:allBookedPos

BookingDataAccessMock.Setup(x => x.GetAllBookingsForVendorInAwitingApproval("A1248").Result).Returns(viewBookings);

这保留了 2 条记录。

我现在正在尝试模拟该方法,其中传入的值是 GUID。GetPurchaseOrderOnlyByIdAsync

因为我本质上希望这个方法被调用两次,所以我认为我可以在以下形式中使用:setupSequence

PurchaseOrderDataMock.SetupSequence(X => X.GetPurchaseOrderByIdAsync(It.IsAny<Guid>)).Returns().Returns()

我用我期望为每个项目返回的值填充每个返回值。但是,我在以下方面出现错误:It.IsAny<Guid>

参数 1 无法从方法组转换为系统。指南

C# 最小起订量 MSTest

评论

2赞 Alessandro D'Andria 11/10/2023
It.IsAny<Guid>()你那里缺少括号。

答:

1赞 knittl 11/10/2023 #1

It.IsAny是一种方法。必须调用该方法才能获取新的匹配器实例:

It.IsAny<Guid>()

评论

0赞 bilpor 11/10/2023
简直不敢相信我错过了。谢谢。。