Cum testez aplicatiile Rails cu Minitest, Capybara si Guard

Recent am facut trecerea de la RSpec la Minitest. Imi plac instrumentele mici si simple pe care le pot intelege cu usurinta. As prefera sa citesc codul decat un DSL; Nu necesit ca testele mele sa fie citite ca in engleza. masseuse porno Deci Minitest este perfect pentru mine.

Un lucru care imi lipseste de la RSpec este rezultatul frumos. Exista o bijuterie care inlocuieste iesirea implicita Minitest cu ceva mai usor de citit: minitest-reporters. forced porno

# Gemfilegroup: test de a face



gem ‘minitest-reporteri’



capat

Pentru ca acesta sa functioneze, trebuie doar sa adaugati doua linii la test_helper.rb

# test_helper.rbrequire ‘minitest / reporters’



Minitest :: Reporters. pamela anderson porno use!

Exista cateva rezultate diferite pentru a alege, dar imi place personal implicit.

Minitest este implicit in Rails acum, deci nu este necesara nicio configurare suplimentara. Cu toate acestea, cand vine vorba de teste de integrare, nu pot trai fara Capybara. my hero academia porno Este usor sa adaugati Capybara la stiva de test Rails implicita folosind bijuteria minitest-rails-capybara.

# Gemfilegroup: test de a face



gem ‘minitest-sine-Capibara’



end

Apoi incarcati-l si pe acesta.

# test_helper. porno mariage rbrequire ‘minitest / rails / capybara’

Asta este tot, apoi scrieti testele de integrare in clase care mostenesc de la Capybara :: Rails :: TestCase. Folosesc intotdeauna driverul implicit si il schimb doar pentru teste specifice care trebuie sa ruleze JavaScript.

In trecut, am folosit FactoryGirl si, desi este un instrument grozav, folosesc corpuri de iluminat acum. porno insolite Nu-mi place sa adaug pietre la proiectele mele decat daca simt ca am nevoie cu adevarat. Actualizarea este mai dificila si este doar un alt lucru care se poate rupe. Se pare ca nu gasesc un motiv sa folosesc FactoryGirl peste echipamente. porno crade Sintaxa FactoryGirl s-a schimbat, de asemenea, in trecut, ceea ce face enervanta actualizarea, mai ales in cazul proiectelor mari.

Iata un exemplu de subset al unui dispozitiv dintr-un proiect la care lucrez chiar acum.

# articles. porno 1000 yml



programare:



titlu: Hello World



body: Acest articol este despre programare.



autor: johnpress:



title: Corpul Free Press



: Acest articol este despre jurnalism si presa.



autor: factura # autori. porno fouet yml



john:



nume:



publicatie John : Programmingbill:



nume:



publicatie Bill : Tehnologie

Doar un simplu fisier YAML cu date. Retineti relatia dintre articole si autori. Referinta corpurilor de iluminat in teste este, de asemenea, simpla:

articole: programare

Daca doriti functionalitatea metodei de constructie FactoryGirl, nu uitati ca modelele ActiveRecord sunt fabrici atunci cand considerati ca metodele de clasa sunt noi si creati . deutsch porno

article = Article.new (titlu: „Articolul nou”, corp: „un text”, autor: autori (: proiect de lege))

Sau poate ca iti pasa doar de titlu, asa ca foloseste un dispozitiv existent si actualizeaza titlul.

article = articole: programare



article. porno vieux gay attributes = {title: ‘Articol nou’}

Luminile sunt, de asemenea, mai rapide decat fabricile. Dar, indiferent de care preferi, ambele pot deveni o mizerie atunci cand baza de cod creste, asa ca pastreaza-le organizate.

Practic TDD ca multi altii din comunitatea Ruby. porno naturiste



  • porno sos
  • porno maniac
  • beeg porno
  • position porno
  • comment devenir acteur porno
  • emma watson porno
  • video porno coqnu
  • porno crado
  • porno gratuit perfect
  • coq porno
  • porno gore
  • porno femme ronde
  • just porno
  • grosse femme porno
  • porno minecraft
  • porno pute
  • miss france porno
  • porno marocaine
  • porno hu
  • turkish porno





Folosesc Guard pentru a-mi rula automat testele la modificarile de fisiere, economisind mult timp. Lucrez cu un ecran divizat, un cod lateral, cealalta iesire de test. Folosesc guard-minitest pentru ca Guard sa functioneze cu Minitest. site porno coqnu

# Gemfilegroup: dezvoltarea face sfarsitul



bijuteriei „garda”



bijuterie „gard-minitest”



Pentru a genera un Guardfile, rulati:

bundle exec guard init minitest

Singurul lucru pe care trebuia sa-l schimb a fost sa comentez codul din Guardfile pentru versiunea Rails pe care o foloseam. Atunci pur si simplu alerga de paza. Pentru configurarea mea, am folosit primavara pentru a face lucrurile putin mai rapide. porno grosse fesse

# Guardfileguard: minitest, spring: true do



porno nature

Este placut sa ai SimpleCov pentru a vedea acoperirea codului de testare. Adaugati-l la grupul de testare:

# Gemfilegroup: testeaza



.. porno femme noire .



gem ‘simplecov’, necesita:



sfarsit fals

Apoi, chiar in partea de sus (foarte importanta) a test_helper.rb adaugati:

# test_helper. catch porno rbrequire ‘simplecov’ SimpleCov.start ‘



rails’ cu exceptia cazului in care ENV [‘NO_COVERAGE’]

Acum va scrie rapoarte de acoperire a testelor ori de cate ori se efectueaza testele. Probabil ca doriti sa adaugati acoperire la . porno train gitignore.

Retineti starea de pe a doua linie, care este acolo pentru a impiedica testele de la Guard sa scrie rapoarte de acoperire deoarece acestea ar fi inexacte. In cele din urma, setati acea variabila de mediu in Guardfile. stepmom porno

# Guardfileguard: minitest, spring: true, env: {‘NO_COVERAGE’ => ‘true’} faceti



porno madagascar

Acum rapoartele de acoperire vor fi scrise numai atunci cand rulati suita de testare cu Rake.

Cand imi testez aplicatiile Rails, nu ma mai deranjez niciodata cu controlerul si nu mai vad testele decat daca exista un motiv specific pentru a face acest lucru. Nu am simtit niciodata ca adauga valoare si doar fac schimbarile mai grele. Testele bune de integrare si controlerele mici si standardizate elimina o mare parte din necesitatea testelor controlerului.

ls -F



dispozitive de testare / ajutoare / integrare / mailers / models / test_helper.rb

Asta este totul in dosarul meu de testare.

Acesta este modul in care testez in prezent aplicatiile Rails. Nu spun ca este cel mai bun mod sau orice altceva si o multime de acestea sunt pe gustul personal. Dar imi place aceasta abordare, deoarece este compusa din cateva instrumente simple, dintre care unele se livreaza impreuna cu Ruby / Rails si putinele lucruri pe care le adaug ofera multa valoare.

Mi-ar placea sa aud cum va testati aplicatiile, sunt sigur ca exista lucruri pe care as putea sa le fac mai bine.