【问题标题】:C# xUnit Mock SetUp method returns null when Test runC# xUnit Mock SetUp 方法在测试运行时返回 null
【发布时间】:2021-08-16 13:22:14
【问题描述】:

我正在进行 .NET 5 自动化测试,我使用夹具创建了模拟对象,我可以调试和配置模拟返回的设置方法,但得到空输出,不确定我缺少什么。在同一个测试中,我为其他类创建了模拟方法,它确实有效。

var paidParkingTransactionsMoq = fixture.CreateMany<PaidParkingTransactionClientModel>(5);

fixture.Customize<PaidParkingTransactionClientModel>(c => c
            .With(x => x.SiteId, siteId)
            .With(x => x.Vrm, vrm)
            .With(x => x.TransactionFromDateUtc, exemptionStartDateTime)
            .With(x => x.TransactionToDateUtc, exemptionEndDateTime)
        );

var paidParkingTransactionMoq = fixture.CreateMany<PaidParkingTransactionClientModel>(1);

var PayByPhoneTransactions = paidParkingTransactionsMoq.Union(paidParkingTransactionMoq).ToList();

payByPhoneLoopupMoq.Setup(x => x.GetLatestTransactionAfterSync(machineMoq.ToList(), vrm)).ReturnsAsync(PayByPhoneTransactions);

实际类

public class PayByPhoneExtensions
{
 public async Task<List<PaidParkingTransactionClientModel>> GetLatestTransactionAfterSync(List<MachineDataView> machines, string vrm)
 {
       //remain code here
 }

错误

【问题讨论】:

    标签: c# xunit .net-5 fixtures


    【解决方案1】:

    找到答案

    payByPhoneLoopupMoq.Setup(x => x.GetLatestTransactionAfterSync(It.IsAny<List<MachineDataView>>(), vrm)).ReturnsAsync(PayByPhoneTransactions);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多