10 marca 2017

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.

http://stackoverflow.com/questions/1479361/what-is-the-community-preferred-ruby-unit-testing-framework

http://stackoverflow.com/questions/1448783/whats-the-most-commonly-used-unit-testing-framework-for-different-types-of-ruby

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 :)

Etykiety:

Komentarze (3):

Blogger Michał Kuliński pisze...
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/
Blogger katafrakt pisze...
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).
Blogger Michał Kuliński pisze...
OOOO, dzięki za info. Nie omieszkam obadać :)

Prześlij komentarz

Subskrybuj Komentarze do posta [Atom]