Gegeben die folgende Schnittstelle:
public interface IFoo
{
bool Foo(string a, bool b = false);
}
Der Versuch, es mit Moq zu verspotten:
var mock = new Mock<IFoo>();
mock.Setup(mock => mock.Foo(It.IsAny<string>())).Returns(false);
gibt beim Kompilieren den folgenden Fehler aus:
Ein Ausdrucksbaum darf keinen Aufruf oder Aufruf enthalten, der optionale Argumente verwendet
Ich habe das oben erwähnte Problem als Erweiterung in der Liste der Probleme von Moq gefunden und es scheint der Version 4.5 zugewiesen zu sein (wann immer dies der Fall ist).
Meine Frage ist: Was soll ich tun, da das oben genannte Problem nicht in Kürze behoben wird? Sind meine Optionen nur, entweder den Standardwert des optionalen Parameters jedes Mal explizit festzulegen, wenn ich ihn verspotte (was den Punkt der Angabe eines Punktes überhaupt zunichte macht) oder eine Überladung ohne den Bool zu erzeugen (wie ich es getan hätte) vor C # 4)?
Oder hat jemand einen klügeren Weg gefunden, um dieses Problem zu lösen?