Wie schreibe ich erwartete Fehler?

9

In Xcode bekomme ich am Ende meiner Unit Tests ein Ergebnis wie folgt:

  

Testsuite 'Alle Tests' abgeschlossen am 2012-12-06 10:23:38 +0000

     

195 Tests wurden ausgeführt, mit 0 Fehlern ( 0 unerwartet ) in 4.314 (4.485) Sekunden

Ich würde gerne herausfinden, wie ich Tests mit erwarteten Fehlern definieren kann.

Normalerweise möchte ich bei anderen Test-Frameworks nur unvollständige Komponententests definieren, die an zukünftige Arbeiten erinnern. Diese Tests sollten nur als Warnungen protokolliert werden, aber immer noch ein Endergebnis "Erfolg" ergeben, wenn alles andere OK ist

Betrachtet man die Ausgabe von Xcode, nehme ich an, dass es einen Weg gibt, dasselbe zu erreichen. Jedoch habe ich Probleme, das richtige Makro zu finden, um unvollständige / TODO-Tests zu markieren. Außerdem erscheint es mir merkwürdig, dass normale Fehler wie folgt gemeldet werden:

  

95 Tests wurden ausgeführt, mit 1 Fehler (0 unerwartet) in 2.314 (2.334) Sekunden

Daher scheint jeder Test Assertion Failure zu erwarten. In diesem Fall bin ich sogar verwirrt mit der Bedeutung von (0 unerwarteten) Fehlern.

Könnte jemand die Bedeutung dieses Teils der Log-Ergebnisse erklären? Wie kann er verwendet werden? Wie kann ich unvollständige Tests markieren?

    
SystematicFrank 06.12.2012, 10:42
quelle

2 Antworten

8

Ein "unerwarteter Fehler" ist eine ausgelöste und nicht behandelte Ausnahme. Im Gegensatz zu einem möglicherweise erwarteten Fehler, der durch eine Assertion überprüft wird.

OCUnit bietet keine Möglichkeit, Tests als "nicht ausführen" zu markieren. Sie können sie entweder auskommentieren (wodurch das Risiko besteht, dass der Test nicht mehr kompiliert wird) oder den Methodennamen ändern, sodass er kein "Test" -Präfix hat. Benennen Sie beispielsweise testSomething in XXXtestSomething um. (Dies lässt das Risiko, dass Sie vergessen, es zurück zu ändern.)

    
Jon Reid 07.12.2012, 05:57
quelle
1

Eine Lösung für mein Problem ist die Verwendung des Warn-Präprozessor-Makros, um Komponententests zu markieren, die abgeschlossen werden müssen. Auf diese Weise bekomme ich nach der Erstellung von Komponententests einen guten Überblick über zukünftige Arbeiten. Dies wird im Warnungsfenster angezeigt, daher ist es viel attraktiver, als nur TODO-Kommentare zu verwenden.

Ich möchte jedoch lieber eine Gesamtanzahl unvollständiger Tests und die Bedeutung der immer "0 unerwarteten" Anzahl meiner Protokollberichte herausfinden.

    
SystematicFrank 06.12.2012 10:47
quelle