З огляду на наступний інтерфейс:
public interface IFoo
{
bool Foo(string a, bool b = false);
}
Спроба знущатися над ним за допомогою Moq:
var mock = new Mock<IFoo>();
mock.Setup(mock => mock.Foo(It.IsAny<string>())).Returns(false);
видає таку помилку під час компіляції:
Дерево виразів не може містити виклик або виклик, які використовують необов'язкові аргументи
Я виявив, що вищезазначена проблема піднята як розширення у списку питань Moq, і вона, як видається, призначена до версії 4.5 (коли це є).
Моє запитання: що мені робити з огляду на те, що вищезазначене не буде виправлено найближчим часом? Чи є мої параметри лише явно встановити значення за замовчуванням необов'язкового параметра кожного разу, коли я його знущаюсь (який тип перемагає точку вказування в першу чергу), або створити перевантаження без bool (як, що я зробив би до C # 4)?
Або хтось натрапив на більш розумний спосіб подолати це питання?