Wie kann ich eine Methode moqen, deren Signatur ein optionales Argument enthält, ohne es explizit anzugeben oder eine Üb
Posted: 29 Dec 2024, 07:10
Angesichts der folgenden Schnittstelle:
Versuch, es mit Moq zu verspotten:
gibt zur Kompilierungszeit den folgenden Fehler aus:
Ein Ausdrucksbaum möglicherweise nicht einen Aufruf oder Aufruf enthalten, der optionale Argumente verwendet
Ich habe festgestellt, dass das oben angesprochene Problem als Erweiterung in der Liste der Probleme von Moq angesprochen wurde scheint der Version 4.5 zugeordnet zu sein (wann immer das der Fall ist).
Meine Frage ist: Was soll ich tun, da das oben genannte Problem in absehbarer Zeit nicht behoben werden kann? Habe ich nur die Möglichkeit, den Standardwert des optionalen Parameters jedes Mal explizit festzulegen, wenn ich ihn verspotte (was den Sinn der Angabe eines Parameters irgendwie zunichte macht) oder eine Überladung ohne Bool zu erstellen (wie ich es getan hätte). vor C# 4)?
Oder hat jemand eine cleverere Möglichkeit gefunden, dieses Problem zu lösen?
Code: Select all
public interface IFoo
{
bool Foo(string a, bool b = false);
}
Code: Select all
var mock = new Mock();
mock.Setup(mock => mock.Foo(It.IsAny())).Returns(false);
Ein Ausdrucksbaum möglicherweise nicht einen Aufruf oder Aufruf enthalten, der optionale Argumente verwendet
Ich habe festgestellt, dass das oben angesprochene Problem als Erweiterung in der Liste der Probleme von Moq angesprochen wurde scheint der Version 4.5 zugeordnet zu sein (wann immer das der Fall ist).
Meine Frage ist: Was soll ich tun, da das oben genannte Problem in absehbarer Zeit nicht behoben werden kann? Habe ich nur die Möglichkeit, den Standardwert des optionalen Parameters jedes Mal explizit festzulegen, wenn ich ihn verspotte (was den Sinn der Angabe eines Parameters irgendwie zunichte macht) oder eine Überladung ohne Bool zu erstellen (wie ich es getan hätte). vor C# 4)?
Oder hat jemand eine cleverere Möglichkeit gefunden, dieses Problem zu lösen?