Moq mock с заданием входного параметра

У меня есть код в тесте с использованием Moq:

public class Invoice
{
    ...

    public bool IsInFinancialYear(FinancialYearLookup financialYearLookup)
    {
        return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate;
    }
    ...
}

Итак, в unit test я пытаюсь издеваться над этим методом и возвращать true

mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true);

Нужно ли писать эту строку, поэтому мне не нужно указывать ввод на IsInFinancialYear. то есть. Так, чтобы в коде не было того, что будет входным параметром, он вернет true, что передается ему?

Ответ 1

Вы можете использовать It.IsAny<T>() для соответствия любому значению:

mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);

Смотрите раздел Соответствующие аргументы быстрого запуска.

Ответ 2

Попробуйте использовать It.IsAny<FinancialYearLookup>() для принятия любого аргумента:

mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);