2017-04-06 62 views
6

Używam Rubberduck do testowania jednostek moich implementacji VBA. Podczas korzystania z wielu Asserts tego samego rodzaju (np. Assert.IsTrue) w jednym TestMethod, wynik testu nie mówi mi, który z nich nie powiodło się, o ile widzę.Korzystając z testów jednostkowych Rubberducka, w jaki sposób mogę się dowiedzieć, który z wielu przykładów nie powiódł się?

Czy istnieje sposób, aby dowiedzieć się, które Asersem się nie udało, czy jest to na mapie drogowej Rubberduck? Oczywiście mogłem dodać własne informacje, np. za pomocą Debug.Print przed każdym Assert, ale to spowodowałoby wiele dodatkowych kodu.

Wiem, że są różne opinie na temat wielu Asserts w jednym teście, ale wybrałem je w mojej sytuacji i ta dyskusja jest już objęta elsewhere.

Odpowiedz

5

Nota prawna: Jestem mocno zaangażowany w rozwój Rubberduck.

Interfejs IAssert że zarówno Rubberduck.AssertClass i Rubberduck.PermissiveAssertClass realizacji, zawiera opcjonalny message parametr dla każdego użytkownika:

Object Browser showing members of 'AssertClass'

po prostu zawierać inny i opisową wiadomość dla każdego twierdzenia:

Assert.AreEqual expected, actual, "oops, didn't expect this" 
Assert.IsTrue result, "truth is an illusion" 

The Test Explo rer toolwindow wyświetli komunikat niestandardowy pod kolumnie wiadomości tylko wtedy, gdy twierdzenie nie:

RD Test Explorer

+1

Bardzo pomocny - Proponuję dodać to do [wiki na Rubberduck Unit Testing] (https: //github.com/rubberduck-vba/Rubberduck/wiki/Unit-Testing). –

+4

@ JörgBrenninkmeyer OMG te zdjęcia pochodzą z wersji 1.4! Wiki na pewno potrzebuje trochę reorganizacji ... zwłaszcza w związku ze zmianami wprowadzonymi do frameworka testowego w następnej wersji (czy powiedziałem * drwiąc * *) ... –

+0

@ Mat'sMug Teraz, gdy jest tag gumowy, czy chcesz zachęcić ludzi do umieszczenia ich aktualnego numeru wersji w swoich pytaniach Rubberduck? To pytanie i twoja odpowiedź są agnostyczne w stosunku do wersji, ale teraz zrobiłeś komentarze agnostyczne bez wersji, a inne pytania mogą nie być agnostyczne w stosunku do wersji. – puzzlepiece87