Как мне Moq метод, который имеет необязательный аргумент в своей подписи без явного указания его или использования перегрузки?
Учитывая следующий интерфейс:
public interface IFoo
{
bool Foo(string a, bool b = false);
}
Попытка издеваться над ним с помощью Moq:
var mock = new Mock();
mock.Setup(mock => mock.Foo(It.IsAny())).Returns(false);
выдает следующую ошибку во время компиляции:
Дерево выражений не может содержать вызов или вызов, использующий необязательные аргументы I '
мы нашли вышеупомянутую проблемуусиление в Мокs список вопросов, и он, кажется, назначен на выпуск 4.5 (когда бы то ни было).
Мой вопрос: что мне делать, если вышеизложенное не будет исправлено в ближайшее время? Могут ли мои варианты только явно задавать значение по умолчанию для необязательного параметра каждый раз, когда я его высмеиваю (что побуждает вообще указывать один из них), или создавать перегрузку без bool (как я бы сделал) до C # 4)?
Или кто-нибудь сталкивался с более умным способом преодолеть эту проблему?