我在使用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部分。