Przejdź do głównej zawartości

Pierwsza klasa

No dobra, to czas może utworzyć pierwszą klasę w systemie.
Wróć, posłuchamy Wujka Boba i pójdziemy ścieżką TDD.
Czyli najpierw test - potem kod produkcyjny.

No dobra, ale jak napisać test w Ruby? Jakie są ciekawe biblioteki ułatwiające?

Stworzę plik z przyszłym testem.


i poszukam czegoś ciekawego.



Internety mówią, że może test-unit się nada.

No to instalujemy przy użyciu RubyGems:

Jest?


Jest. No to teraz instalacja.


Sukces.
Dlaczego “2 gems installed”, a nie “1 gem installed”? Tak jest właśnie funkcja menedżera pakietów  RubyGems i każdego innego w innych technologiach. Pobierają pakiety, które są potrzebne do działania tego, który instalujemy.

Dooobra. To jak tego używać?

Według dokumentacji trzeba w pliku testów wpisać ciąg:

require "test-unit"

Dobra mam

I teraz chyba jakąś przykładową klaskę z testem trzeba napisać?

Wzoruję się na tym:


Jadę z koksem:


  1. Tu sobie zmienię nazwę
  2. Tu zostawię bez zmian


  1. class - to słówko kluczowe dla klasy
  2. def - to słówko kluczowe dla metody

No i samo gęste: sprawdzenie czy 1 + 1 = 2

Sprawdzę czy nie żadnych błędów składni i czy się odpala:


Nikt nie krzyczy :(
Something is no yes :)
No dobra, ale jak to odpalić. Musi być jakiś myk?

Myślę, że tu jest taka konwencja nazwy, że nazwa metody musi zaczynać się od słowa “test”.
Zmienię.

Taki TIP: Edycję w edytorze Vim zaczynamy kombinacją [Shift] + [i], czyli duże I jak Irena

Co powiesz na to:


Odpalam znowy przy użyciu ruby.
(.....)
Cytując klasyka: “yes, yes, yes”:


Swoją drogą, ciekawa jest statystyka - ile średnio odpali mi się testów/asercji na sekundę:


Jest moc :)

Komentarze

  1. Zebrałem feedback do posta ze Slacka:

    dloranc
    Post w sumie spoko, tylko budowałbym dłuższe zdania.

    wmioduszewski
    @coola - właśnie tak jak mówi @dloranc

    @alus +1

    Czyli coś jest na rzeczy :)

    Nie byłeś jeszcze na Slacku? No to zapraszamy serdecznie. Duuuużo tam się dzieje:

    https://devspl.slack.com/messages/dsp17/

    OdpowiedzUsuń
  2. test-unit? W sumie bez wchodzenia mógłbym zgadywać, z którego roku są te wątki na SO i nie pomyliłbym się ;) Oczywiście, jak sam pokazałeś, można go używać. Ba, nawet jest w jakimś stopniu wspierany. Tyle że... Nikt tego nie używa.

    Praktycznie wszyscy do testowania używają RSpeca (http://rspec.info), aczkolwiek jest to podejście BDD, a więc trochę się różniące od "klasyki". Natomiast ci, którzy nie decydują się na RSpeca, korzystają z minitesta (https://github.com/seattlerb/minitest).

    OdpowiedzUsuń

Prześlij komentarz

Popularne posty z tego bloga

Kursy IT na Pluralsight. Dlaczego warto?

Bardzo sobie cenię kursy na Pluralsight. Mam wrażenie, że każdy kurs, który przeszedłem na tej platformie, w dużym stopniu podniósł moje zdolności. Wiem, dostęp do tej platformy nie jest tani, ale w mojej ocenie warty swojej ceny. To nie jest reklama, ale forma entuzjazmu jaki mam do tej formy samodoskonalenia. O to kilka punktów pokazujących ofertę tego serwisu i dlaczego warto skorzystać: Pluralsight to kursy z Javascript, C#, Java, Angular, Python, MySQL i wielu innych technologii i umiejętności. Kursy na Pluralsight w większości mają wyższą jakość niż te, które możemy znaleźć na przykład na YouTube. Są wyselekcjonowane, mają wysoką jakość dźwięku i obrazu. Często wgryzają się głęboko w dany problem daleko poza standardowe „Hello World” danej technologii. Twórcy Pluralsight to często osoby znane ze świata IT i konferencji branżowych, jak: Scott Hanselman, Microsoft John Somnez, SimpleProgrammer.com John Skeet, Google Pluralsight udostępnia funkcjonalność ścieżek – paths....

Bicie piany

Czy słyszałeś o tym gościu, który powiedział, że Object Oriented to przeżytek? No nie. Następny. Co powiedział? Opisał wszystkie obietnice OO, i jak żadna z nich tak naprawdę nigdy nie została spełniona i o tych wszystkich możliwościach OO, które kosztują więcej, niż są warte i że funkcjonalne programowanie jest lepsze i ... Phi. Tak słyszałem już to wcześniej. No, więc OO jest martwe, leży i kwiczy i możemy przejść dalej. Przejść dalej do czego? Co? No do NASTĘPNEJ WIELKIEJ RZECZY oczywiście. Aaaa, do tego. Czy wiesz już co to jest? Nie bałdzo, ale jestem podekscytowany na myśl o mikroserwisach; jaram się Elixirem; i słyszałem, że React jest fantastyczny; i ... Tak, tak. Bicie piany. Dałeś się nabrać na bicie piany. Co? Co masz na myśli. Przecież mamy takie wspaniałe czasy. Tak naprawdę postrzegam te czasy jako depresyjne. Ale dlaczego? Przecież co kilka dni wyskakują nowe wspaniałe technologie! Wspinamy się na coraz wyższe szczyty. Phi. To, co tak napraw...

Podstawy Programowania Funkcyjnego Epizod 1

O czym jest programowanie funkcyjne? Zakładam, że słyszałeś już kiedyś o programowaniu funkcyjnym. No cóż, któż nie słyszał? Wszyscy o tym gadają. Wychodzi dużo nowych języków funkcyjnych takich, jak Scala, F# i Clojure. Ludzie rozmawiają też o starszych językach jak Erlang, Haskell, ML i innych. A więc, o co w tym wszystkim chodzi? Dlaczego programowanie funkcyjne jest Następną Wielką Rzeczą™? I co jest w tym takiego pociągającego? Poniższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina z dnia 22 grudnia 2012 ze strony: https://blog.cleancoder.com/uncle-bob/2012/12/22/FPBE1-Whats-it-all-about.html Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta. Po pierwsze, prawie na pewno programowanie funkcyjne jest następną wielką rzeczą. Są ku temu dobre, solidne powody i poznamy je w tym artykule. Ale najpierw, aby zrozumieć te powody, musimy poznać, czym programowanie funkcyjne jest....