我在使用Moq的测试中有一些代码:

public class Invoice
{
    ...

    public bool IsInFinancialYear(FinancialYearLookup financialYearLookup)
    {
        return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate;
    }
    ...
}

所以在单元测试中,我试图模拟该方法并使它返回true
mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true);

无论如何有写这行,所以我不必指定IsInFinancialYear的输入。即。这样一来,无论代码中输入了什么参数,它都不会返回true,无论传递给它的是什么?

最佳答案

您可以使用It.IsAny<T>()来匹配任何值:

mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);

请参阅快速入门的Matching Arguments部分。

10-02 01:53