Odpowiedzi:
Bazowy drzewo wyrażenie API nie obsługuje opcjonalne argumenty.
W przypadku kodu skompilowanego w języku IL kompilator C # wstawia wartości domyślne w czasie kompilacji (zakodowane na stałe), ponieważ środowisko CLR nie obsługuje wywoływania metod z opcjonalnymi argumentami, gdy argumenty nie są jawnie podawane.
Ten sam komunikat pojawił się podczas próby użycia Mock.setup do sfałszowania metody z wieloma parametrami domyślnymi. Musiałem tylko dodać dodatkowe parametry w lambdzie.
void someMethod(string arg1 = "", string arg2 = "")
mockedObject.Setup(x => x.someMethod(It.IsAny<string>(), It.IsAny<string>()))
It.IsAny<object>
. Zasadniczo brakowało mi parametru dlasomeMethod()
x.someMethod(default,default)
...