Moq模拟方法没有指定input参数
我在使用Moq的testing中有一些代码:
public class Invoice { ... public bool IsInFinancialYear(FinancialYearLookup financialYearLookup) { return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate; } ... }
所以在unit testing中,我试图嘲笑这个方法,并使其返回true
mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true);
有没有反正写这一行,所以我不必指定inputIsInFinancialYear
。 即。 所以它没有在代码中input参数是什么,它将返回真正的任何传递给它?
您可以使用It.IsAny<T>()
来匹配任何值:
mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
请参阅快速入门的匹配参数部分。
尝试使用It.IsAny<FinancialYearLookup>()
接受任何参数:
mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
您可以尝试以下方法:
https://7pass.wordpress.com/2014/05/20/moq-setup-and-ignore-all-arguments/
允许:
mock .SetupIgnoreArgs(x => x.Method(null, null, null) .Return(value);