Wie kann ich eine Methode moqen, deren Signatur ein optionales Argument enthält, ohne es explizit anzugeben oder eine ÜbC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie kann ich eine Methode moqen, deren Signatur ein optionales Argument enthält, ohne es explizit anzugeben oder eine Üb

Post by Anonymous »

Angesichts der folgenden Schnittstelle:

Code: Select all

public interface IFoo
{
bool Foo(string a, bool b = false);
}
Versuch, es mit Moq zu verspotten:

Code: Select all

var mock = new Mock();
mock.Setup(mock => mock.Foo(It.IsAny())).Returns(false);
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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post