Wie kann ich verspotte diese statische Methode

Habe ich diesen code:

public static bool IsValidVoucher(string id)
{
    //read tsv files
    var temp1 = AppData.GetAppData("stringval");            
    //code that need to be tested        
    return true;        
}

Und ich mag zu erstellen, unit-test, aber wie kann ich verspotte AppData.GetAppData("stringval") zu, was ich will, der Wert ist, so kann ich testen, den rest des Codes.

AppData-Klasse:

public class AppData
{
    public static object GetAppData(string name)
    {
        //...
    }
}
  • Statt hardcoding 'AppData.GetAppData' könnten Sie injizieren einer Klasse, die macht die Lektüre der AppData und dann in Ihre unit-Tests, mock, die Klasse und setup der return-Wert, den Sie brauchen.
  • Mit Moq nicht möglich, ohne weitere änderungen am source-code. Aber mit Typemock Isolator ist es ist möglich. Allerdings Isolator ist nicht frei.
  • Und hier ein paar mehr Infos über Spott statische Methoden. Und hier Antwort SO aus. HTH
  • mögliche Duplikate von Mock-statische Konstanteneigenschaft mit moq
  • Ich habe fiel meine Antwort, weil ich glaube, dass es nicht helfen wird, in diesem Szenario. Jedenfalls wissen Sie jetzt, dass der Ausdruck Bäume sind da, um zu helfen, eine Menge!
Schreibe einen Kommentar