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 セクションを参照してください。
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);