So erstellen Sie benutzerdefinierte MSTest Assert-Methoden mit "richtigen" Callstack

8

Ich schreibe Erweiterungsmethoden zum Testen von Werten für meinen Komponententest. Ein naives Beispiel wäre:

%Vor%

Und es in einem Test verwenden:

%Vor%

Alles funktioniert, außer dass die Zeile, die die Ausnahme auslöst, diejenige ist, die ich beim Doppelklicken auf den fehlgeschlagenen Test im Fenster Testergebnisse erreicht habe, und in Testergebnisdetails wird die Wurflinie im Fehler Stack Trace angezeigt .

Gibt es einen Weg darum, so dass "someBool.ShouldBeTrue ();":

  1. ist die Zeile, die auf den fehlgeschlagenen Test im Fenster Testergebnisse doppelklickt?
  2. ist die einzige Zeile im Stack-Trace?
hcanber 18.11.2010, 13:58
quelle

2 Antworten

1

Ich glaube, ich habe die Antwort gefunden. Sie müssen lediglich Ihre benutzerdefinierten Assertion-Klassen / Methoden in eine separate Assembly einfügen. Sie können dies als ein separates Projekt in der gleichen Lösung haben, wenn Sie möchten.

    
Rob Cannon 02.02.2011, 16:37
quelle
2

Dafür gibt es bereits eine Klassenbibliothek: Ссылка

Es gibt ein Zitat aus dem obigen Link:

  

... Als Referenz sind die nicht verfügbaren Asserts:

     
  • Assert.IsNaN
  •   
  • Assert.IsEmpty
  •   
  • Assert.IsNotEmpty
  •   
  • Assert.Greater
  •   
  • Assert.GreaterOrEqual
  •   
  • Assert.Less
  •   
  • Assert.LessOrEqual
  •   
  • Assert.IsAssignableFrom
  •   
  • Assert.IsNotAssignableFrom
  •   
  • CollectionAssert.IsEmpty
  •   
  • SammlungAssert.IsNotEmpty
  •   
  • StringAssert.AreEqualIgnoringCase
  •   
  • StringAssert.IsMatch
  •   
  • FileAssert.AreEqual
  •   
  • FileAssert.AreNotEqual
  •   

... Ich habe eine Klassenbibliothek erstellt, die alle außer den FileAssert-Methoden und StringAssert.IsMatch enthält. ... Sie können die Klasse aus meinem öffentlichen SkyDrive-Ordner herunterladen: Ссылка

    
Nikita G. 02.02.2012 13:24
quelle

Tags und Links