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);
빠른 시작 의 일치하는 인수 섹션을 참조하십시오 .
답변
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);