Freigeben über


Gewusst wie: Testen einer privaten Methode

Aktualisiert: November 2007

Sie können sowohl öffentliche, als auch private Methoden mit Komponententests testen. Ebenso wie bei öffentlichen Methoden werden Komponententests für private Methoden automatisch erstellt, wenn Sie Tests aus dem Code generieren, den Sie testen möchten.

Obwohl Sie Code für Komponententests manuell schreiben können, um Methoden zu testen, ist diese Aufgabe für private Methoden schwieriger als für öffentliche, da sie ein besseres Verständnis der Komplexität der Reflektion erfordert. Daher werden Sie es vorziehen, Tests für private Methoden zu generieren, anstatt den Code von Hand zu schreiben.

Wenn Sie einen Komponententest für eine private Methode generieren, wird in Visual Studio automatisch ein privater Accessor erstellt. Ein privater Accessor ist eine Assembly, über die der Test auf eine private Methode zugreifen kann, und zwar außerhalb der Klasse dieser Methode. Weitere Informationen finden Sie unter Verwenden privater Accessoren.

Hinweis:

Zusätzlich zu privaten Methoden können Sie auch einen privaten Accessor verwenden, um private Eigenschaften und Felder zu testen. Sie können einen privaten Accessor jedoch nicht verwenden, um private Versionen von Ereignissen, Delegaten, anonymen Methoden und Membern, die mit dem CompilerGeneratedAttribute-Attribut gekennzeichnet sind, zu testen.

InternalsVisibleTo oder ein privater Accessor: Was ist vorzuziehen?

Sie können eine private Accessorassembly verwenden, um sowohl auf private Member als auch auf interne Member zuzugreifen. Wenn der zu testende Code interne Member, aber keine privaten Member enthält, empfiehlt es sich, das InternalVisibleTo-Attribut für den zu testenden Code zu verwenden und auf die Erstellung einer privaten Accessorassembly zu verzichten. Wenn der Code jedoch private und interne Member enthält, die Sie testen möchten, verwenden Sie den privaten Accessor, da dieser Zugriff auf beide Typen bietet. Weitere Informationen finden Sie unter Verwenden privater Accessoren.

So generieren Sie einen Komponententest für eine private Methode

  1. Öffnen Sie eine Quellcodedatei, die eine private Methode enthält.

  2. Klicken Sie mit der rechten Maustaste auf die private Methode, und wählen Sie Komponententests erstellen aus.

    Das Dialogfeld Komponententests erstellen wird angezeigt. In der sichtbaren Struktur ist nur das Kontrollkästchen für die private Methode aktiviert.

  3. (Optional) Im Dialogfeld Komponententests erstellen können Sie das Ausgabeprojekt ändern. Sie können auch auf Einstellungen klicken, um die Art und Weise, wie Komponententests generiert werden, neu zu konfigurieren.

  4. Klicken Sie auf OK.

    Dadurch wird Code für den Zugriff auf die private Methode generiert, das Testprojekt erstellt sowie die Assembly mit dem privaten Accessor erstellt oder aktualisiert.

    Wenn Ihr Testprojekt vorher keine Komponententests enthielt, wird eine Quellcodedatei erzeugt, in der Komponententests gespeichert werden. Wie die Datei, die private Accessoren enthält, ist auch die Datei, die Komponententests enthält, im Projektmappen-Explorer sichtbar.

  5. Öffnen Sie die Datei, die die Komponententests enthält, und führen Sie einen Bildlauf zum Test für die private Methode durch. Suchen Sie die Anweisungen die mit // TODO:-Kommentaren versehen sind, und vervollständigen Sie diese, indem Sie die Anweisungen in den Kommentaren befolgen. So kann der Test genauere Ergebnisse liefern. Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines Komponententests.

    Der Komponententest für die private Methode kann jetzt ausgeführt werden. Weitere Informationen finden Sie unter Gewusst wie: Ausführen ausgewählter Tests.

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines Komponententests

Exemplarische Vorgehensweise: Erstellen und Ausführen von Komponententests

Konzepte

Verwenden privater Accessoren

Verwenden von Publicize zum Erstellen privater Accessoren

Festlegen des InternalsVisibleTo-Attributs

Weitere Ressourcen

Gewusst wie: Generieren eines Komponententests