Mam kod w teście przy użyciu Moq:
public class Invoice
{
...
public bool IsInFinancialYear(FinancialYearLookup financialYearLookup)
{
return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate;
}
...
}
Więc w teście jednostkowym próbuję kpić z tej metody i sprawić, by zwróciła prawdę
mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true);
Czy jest tak, aby napisać tę linię, więc nie muszę określać danych wejściowych IsInFinancialYear
. to znaczy. Aby nie było w kodzie, jaki jest parametr wejściowy, zwróci wartość true, cokolwiek zostanie do niego przekazane?
Spróbuj użyć,
It.IsAny<FinancialYearLookup>()
aby zaakceptować dowolny argument:mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
źródło
Możesz spróbować następujących rzeczy:
https://7pass.wordpress.com/2014/05/20/moq-setup-and-ignore-all-arguments/
Umożliwia:
mock .SetupIgnoreArgs(x => x.Method(null, null, null) .Return(value);
źródło