使用 Moq 模拟 ReturnsAsync 到 return 2 个值

Mocking ReturnsAsync using Moq to return 2 values

给定一个接口:

Task<Booking> GetBookingAsync(Guid reservationId);

我会像这样嘲笑以下内容:

_bookingLogic.Setup(x => x.GetBookingAsync(It.IsAny<Guid>())).ReturnsAsync(new Booking());

鉴于界面现在更改为:

Task<(Booking Booking, IList<GAEvent> GaEvents)> GetBookingAsync(Guid reservationId);

这将如何使用 Moq 进行模拟?

_bookingLogic.Setup(x => x.GetBookingAsync(It.IsAny<Guid>())).ReturnsAsync(?????);

在第二种情况下,结果是一个值元组,因此您需要创建一个。尝试:

.ReturnsAsync((new Booking(), (IList<GAEvent>)new List<GAEvent>()))