Ответ 1
Вы можете использовать It.IsAny<T>()
для соответствия любому значению:
mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
Смотрите раздел Соответствующие аргументы быстрого запуска.
У меня есть код в тесте с использованием 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, что передается ему?
Вы можете использовать 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);