Antworten:
Die zugrunde liegende Ausdrucksbaum-API unterstützt keine optionalen Argumente.
Für IL-kompilierten Code fügt der C # -Compiler die Standardwerte zur Kompilierungszeit ein (fest codiert), da die CLR Aufrufmethoden mit optionalen Argumenten auch dann nicht unterstützt, wenn die Argumente nicht explizit angegeben werden.
Hatte die gleiche Meldung beim Versuch, mit Mock.setup eine Methode mit mehreren Standardparametern zu verspotten. Ich musste nur die zusätzlichen Parameter im Lambda hinzufügen.
void someMethod(string arg1 = "", string arg2 = "")
mockedObject.Setup(x => x.someMethod(It.IsAny<string>(), It.IsAny<string>()))
It.IsAny<object>
. Grundsätzlich fehlte mir ein Parameter fürsomeMethod()
x.someMethod(default,default)
... verwendet werden.