Dlatego lepiej zacząć od TestUnit-a, który jest dobrze udokumentowany i dopiero później używać RSpec-a. Inna sprawa, że RSpec daje tylko ładniejszą? składnie, a zasada działania obu bibliotek jest identyczna.
To kwestia gustu bardziej, bo niektórzy nie trawią składni Rspeca. Dlatego ciężko powiedzieć, że składnia jest lepsza czy gorsza. Jest inna. I ja bym raczej powiedział, że w przypadku railsów test unit jest opisany dużo lepiej (guides!), o ile nie masz książki o rspecu, w której jest wszystko fajnie zebrane.
Swoją drogą, fajnie jest znać obie biblioteki, obie mają swoje wady i zalety. Zgadzam się z argumentamiy Kuby z artykułu powyżej i lubię test unit z tych powodów, ale z kolei konteksty i custom matchers z rspeca też się czasami przydają (chociaż część osób powie, że nie powinno się kontekstów używać).
Przy okazji, spróbuj na przykład w rspecu napisać łatwo wyspecjalizowane klasy takie jak w railsach do testowania różnych elementów (np. ActionView::TestCase albo klasy do testowania generatorów czy coś w tym stylu) - w rspecu to jest jakoś magicznie pospinane, w test unit masz po prostu klasę z odpowiednimi metodami, po której możesz dziedziczyć i zrobić sobie prosto swoją wersję. Tak samo jak shared_examples_for. Używałem tego kilka razy, ale nigdy jeszcze nie użyłem bez zaglądania w dokumentację. W test unit tworzysz po prostu moduł z metodami testowymi i go includujesz w test case’ach.
Nie rozumiem w jaki sposób wiąże się to z dyskusją o składni. Rozmowa dotyczy API, a nie tego w jakim runnerze to odpalisz. Widziałem tego gista i jak ktoś potrzebuje funkcji dostępnych w runnerze rspeca, to na pewno mu się przyda, ale tak czy siak kod będzie musiał pisać używając TestCase’ów albo describe’ów i contextów. Chyba, że ktoś chce to połączyć, ale wtedy współczuję
Zresztą jak to jest flejm, to znaczy, że flejmuję sam ze sobą, bo tak jak napisałem, uważam, że obie biblioteki są fajne i obie mają swoje wady i zalety.
EDIT:
I takie jeszcze kontrolne pytanie. Jak masz kod z użyciem swojego własnego TestCase’a, ale odpalasz go używając polecenia rspec, to piszesz w rspecu czy w test/unit?