Ich benutze Moq (die ich auch sehr neu sowie TDD-Periode bin). Und ich wollte Moq eine Instanz meines Winforms-Hauptformulars erstellen, damit ich dort ein paar Methoden testen konnte. Ist das möglich? Sein Konstruktor nimmt ein Objekt von Assembly().Wie kann ich eine Instanz meines Winform-Hauptformulars erstellen, um einige Methoden zu testen?
Ich habe versucht, die folgenden Versuche erfolglos:
var mockMainForm = new Mock<MainForm>();
mockMainForm.Setup(x => x.Assembler).Returns(new Assembly());
return mockMainForm.Object;
Aber ich auf dieses Objekt keine Eigenschaften oder Methoden nicht zugreifen können, sobald sie zurückgegeben. Ist das möglich?
Aber ich bekomme Fehler, die (fehlgeschlagen: System.ArgumentException: Expression kein Methodenaufruf ist: x => x.Assembler bei Moq.ExpressionExtensions.ToMethodCall (Lambda Ausdruck))
Neu-Programmierung und mit Moq und TDD, ich kann nicht sagen, dass Ihre Antwort technisch falsch ist oder nicht, aber es funktioniert nicht Hilf mir, Moq zu benutzen, um meinen Versuch zu machen, Moq zu benutzen, um das Hauptformular zu verspotten. – pghtech
Nun, deine Frage war anders, als ich meine Antwort gepostet habe. Sie wollten auf die Methoden usw. in Ihrem Formular zugreifen, also half ich Ihnen, das Formularobjekt zu erhalten. Das heißt, ich weiß nicht wirklich, ob das die '.Object' -Eigenschaft enthält, da ich Moq vorher noch nie benutzt habe. –