我在使用Moq的测试中有一些代码:
public class Invoice
{
...
public bool IsInFinancialYear(FinancialYearLookup financialYearLookup)
{
return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate;
}
...
}
Run Code Online (Sandbox Code Playgroud)
所以在单元测试中我试图模拟这个方法并让它返回true
mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true);
Run Code Online (Sandbox Code Playgroud)
无论如何都要写这行,所以我不必指定输入IsInFinancialYear.即.所以它在代码中没有输入参数是什么,它将返回true传递给它的什么?
Jef*_*ata 209
您可以使用It.IsAny<T>()匹配任何值:
mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
Run Code Online (Sandbox Code Playgroud)
jeh*_*eha 16
尝试使用It.IsAny<FinancialYearLookup>()接受任何参数:
mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以尝试以下方法:
https://7pass.wordpress.com/2014/05/20/moq-setup-and-ignore-all-arguments/
允许:
mock
.SetupIgnoreArgs(x => x.Method(null, null, null)
.Return(value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54949 次 |
| 最近记录: |