如何使用 moq C# 模拟带有 GUID 参数的序列

问题描述 投票:0回答:1

我有以下具体代码:

 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 项记录。

我现在正在尝试模拟

GetPurchaseOrderOnlyByIdAsync
方法,其中传入的值是 GUID。

因为我本质上希望这个方法被调用两次,所以我想我可以使用

setupSequence
的形式:

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

我用我期望为每个项目返回的值填充每个返回值。但是,我在

It.IsAny<Guid>
上收到错误:

参数 1 无法从方法组转换为 system.Guid

c# moq mstest
1个回答
1
投票

It.IsAny
是一种方法。您必须调用该方法:

It.IsAny<Guid>()
© www.soinside.com 2019 - 2024. All rights reserved.