1. ホーム
  2. c#

[解決済み] 入力パラメータを指定しないMoqモック法

2022-05-03 14:08:23

質問

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);

をご覧ください。 マッチング引数 のセクションをご覧ください。