Mam 6 miesięcy doświadczenia w programowaniu Rails. Zbudowałem aplikację internetową, która jest obecnie używana z uwierzytelnianiem i autoryzacją oraz bazą danych postgresql.
Przechodzę do mojej drugiej aplikacji Railsowej, ale tym razem, po wyciągnięciu lekcji, chciałbym ją rozwinąć za pomocą TDD, ponieważ zauważyłem, że jest o wiele łatwiej skalować i naprawiać błędy. Rozwija się powoli, ale na dłuższą metę jest znacznie łatwiejszy w obsłudze.
Słyszałem o Rspec i Cucumber, ale jestem przez nie całkowicie zdezorientowany.
Chciałbym wiedzieć, jaka jest różnica między RSpec a Cucumber i do czego są one używane.
Przydałoby się również wiedzieć, czy z perspektywy początkującego (który jest jedynym programistą), czy framework testowy jest naprawdę potrzebny.
Odpowiedzi:
RSpec i Cucumber to platformy testowe. RSpec zawiera tradycyjne testy jednostkowe (co oznacza testowanie klasy lub części aplikacji w oderwaniu od reszty aplikacji. Tak więc twój model robi to, co powinien robić twój model, kontroler robi to, co powinien, itd.).
RSpec i Cucumber są używane do testów akceptacyjnych (które nazywa się ATDD, BDD, specyfikacja według przykładu itp. W zależności od tego, kogo zapytasz). Są to testy integracji oparte na przypadkach biznesowych, co oznacza, że symulują sposób, w jaki użytkownik korzysta z aplikacji i korzysta z pełnego stosu Railsów, dzięki czemu można wykryć problemy ze sposobem, w jaki różne części aplikacji współpracują ze sobą w sposób uniemożliwiający testowanie jednostkowe. odnaleźć.
Główną różnicą między RSpec a Cucumber jest współczynnik czytelności biznesowej. Główną zaletą ogórka jest to, że specyfikacja (funkcje) są oddzielne od kodu testowego, więc właściciele produktów mogą dostarczyć lub przejrzeć specyfikację bez konieczności przekopywania się przez kod. To są pliki .feature, które tworzysz w Cucumber. RSpec ma podobny mechanizm, ale zamiast tego opisujesz krok za pomocą bloku Opis, Kontekst lub To, który zawiera specyfikację biznesową, a następnie natychmiast masz kod, który wykonuje tę instrukcję. Takie podejście jest trochę łatwiejsze dla programistów, ale trochę trudniejsze dla osób nietechnicznych.
Którego użyć? Jeśli jesteś jedynym deweloperem i właścicielem produktu, to trzymałbym się RSpec, uważam, że jest to łatwiejsze do zrozumienia dla osoby technicznej, oferuje kilka zalet w utrzymywaniu zakresu i kontroli oraz pozwala uniknąć mieszania się z RegExami do testów kroki. Jeśli budujesz to dla klienta i jest on praktyczny w zakresie specyfikacji, przejdź do testu akceptacji z ogórkiem i użyj RSpec do testów jednostkowych.
Aby pokazać główną różnicę między nimi:
Ogórek:
Rspec
Ta seria blogów doskonale nadaje się do rozpoczęcia korzystania z RSpec.
źródło