Frage

Ich habe eine Signatur für eine Methode, die so aussieht: private iEnumerable BuildCustomerupdatePlan (localcachechangedCustomer listen, listen crmchangedCustomer) {}

Wenn ich mir das holierte Objekt ansehe, die Syntax (IntelliSense), wie man die Methode nennt und es für mich absolut verwirrend testet, und jedes Mal, wenn ich sie schieß, bekomme ich Kompilierungsfehler. Ich habe die grundlegenden Tutorials auf der Website von MSFT durchgesehen, aber ich bekomme einfach nicht, wie man eine private Methode mit Maulwürfen testet oder wie man mit dem Rückgabetyp und mehreren Parametern umgeht.

Leider konnte ich andere gute Howto oder Threads nicht finden, die eine komplexere Probe zeigten, als nur mit einer einfachen add () -Methode zu arbeiten, die eine INT ausspuckt und eine INT akzeptiert. :(

Tipps?

War es hilfreich?

Lösung

Stellen Sie in Ihrem Testprojekt zunächst sicher, dass Sie eine Maulwürdebaugruppe hinzufügen, die dem Montage-Unter-Test entspricht. Sie möchten auch eine hinzufügen using Aussage des Versammlungstests mit .Moles Angehängt, damit Sie den holzenen Anbau verwenden können.

Mol ändert die Namen der Klassen und Methoden in die Form M[Original Class Name].[Original Method Name][typeof param1][typeof param2].... In Ihrem Fall könnte ein Umweg für diese Methode so aussehen wie MClass.BuildCustomerUpdatePlanListList = (List x, List y) => { [code]};. Das definiert eine anonyme Methode, die zwei dauert Lists als Parameter und Sie würden den in der Funktion gewünschten Code einfügen. Stellen Sie einfach sicher, dass Sie eine zurückgeben IEnumerable In dieser anonymen Methode.

Hier ist ein Beispiel, das Maulwürfe zum Umweg verwenden Directory.GetFiles:

using System.IO.Moles;
[assembly: MoledType(typeof(System.IO.Directory))]
...
    MDirectory.GetFilesStringString = (string x, string y) => new string[0];

Seit der Directory Klasse ist Mitglied von System.IO ich benutze using System.IO.Moles; Um festzulegen, dass ich hälfte Mitglieder der Baugruppe verwenden möchte.

Maulwürfe verlangen, dass Sie die gemeldeten Typen angeben: [assembly: MoledType(typeof(System.IO.Directory))] macht den Job.

Endlich, Directory.GetFiles Nimmt zwei Zeichenfolgen als Parameter und gibt ein String -Array zurück. Um die Methode zur Rückgabe des Äquivalents ohne gefundene Dateien zu veranlassen, kehrt die Häutmethode nur zurück new string[0]. Lockige Zahnspangen werden benötigt, wenn Sie mehrere Zeilen in der anonymen Methode wünschen, und wenn Sie eine Void -Methode nicht umziehen, würde eine Rückgabeanweisung, die dem Typ der ursprünglichen Methode entspricht, zurückgegeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top