Как мне Moq метод, в сигнатуре которого есть необязательный аргумент, без его явного указания или без использования переC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как мне Moq метод, в сигнатуре которого есть необязательный аргумент, без его явного указания или без использования пере

Сообщение Anonymous »

При следующем интерфейсе:

Код: Выделить всё

public interface IFoo
{
bool Foo(string a, bool b = false);
}
Попытка высмеять его с помощью Moq:

Код: Выделить всё

var mock = new Mock();
mock.Setup(mock => mock.Foo(It.IsAny())).Returns(false);
во время компиляции выдает следующую ошибку:


Дерево выражений не может быть содержать вызов или вызов, который использует необязательные аргументы


Я обнаружил, что проблема, поднятая выше, является улучшением в списке проблем Moq, и она похоже, относится к выпуску 4.5 (всякий раз, когда это есть).

Мой вопрос: что мне делать, учитывая, что вышеизложенное не будет исправлено в ближайшее время? Я могу только либо явно установить значение по умолчанию для необязательного параметра каждый раз, когда я издеваюсь над ним (что в первую очередь противоречит смыслу его указания), либо создать перегрузку без логического значения (как то, что я бы сделал до C# 4)?

Или кто-нибудь сталкивался с более умным способом решения этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/129 ... ithout-exp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»