Я пытаюсь протестировать свой код, используя инфраструктуру Moq, и я хотел бы проверить, вызваны ли мои методы или нет в некоторых особых случаях. Для этого я должен использовать Mock.Times. Если я использую Times, как это, он работает правильно.
MockObject.Verify(x => x.SomeMethod(), Times.Once)
Но так как у меня есть много способов проверки, я хочу использовать его следующим образом:
System.Func<Times> times = isItCalled ? Times.Once : Times.Never;
MockObject.Verify(x => x.SomeMethod(), times)
И для этого я получаю следующее сообщение об ошибке: Невозможно определить тип условного выражения, поскольку не существует неявного преобразования между «группой методов» и «группой методов».
Это действительно странно для меня, потому что я подумал этот оператор аналогичен следующему (который также работает правильно):
System.Func<Times> times;
if (isItCalled)
{
times = Times.Once;
}
else
{
times = Times.Never;
}
MockObject.Verify(x => x.SomeMethod(), times)