Rails: Bon exemple d'utilisation Rspec2? (Également: concombre, conserves au vinaigre, Capybara) [fermée]

StackOverflow https://stackoverflow.com/questions/4618241

Question

Je suis à la recherche d'une application open source plutôt récente qui utilise Rspec 2 comme bibliothèque de test. Je voudrais voir comment un développeur expérimenté utilise la bibliothèque correctement pour tester la pile complète, puisque je suis constamment dans le doute en ce qui concerne ma propre connaissance (en provenance de TestUnit et en partie en raison de la documentation assez clairsemée de la dernière version Rspec, même si elle est constamment améliorée).

Si un projet utiliserait concombre, conserves au vinaigre et / ou Capybara ainsi avec Rspec 2, vous auriez pu me sauter de joie.

Les pointeurs?

Vive!

Était-ce utile?

La solution

Mes 2 cents:

Utiliser Steak au lieu de concombre. Il RSpec à sa base, il est simple et il fait le travail.

https://github.com/cavalle/steak

Capybara vous permettent d'utiliser des pilotes différents. Certains pilotes prennent en charge le javascript, exécutez avec un navigateur, plus rapide, plus lent, etc. Utilisez le meilleur pilote pour la spécification que vous testez en utilisant Swinger:

https://github.com/jeffkreeftmeijer/swinger

J'utilise ma propre fourchette de Akephalos - un conducteur -. Qui est rapide, javascript de soutien, UTF-8 (qui est ce que ma fourchette ajoute) et n'a pas besoin d'un navigateur externe

https://github.com/Nerian/akephalos2

Une bonne pratique pour RSpec est d'utiliser « contexte ». Demandez-moi si vous avez besoin d'éclaircissements. Aussi, prenez note du let méthode . Elle retourne quel que soit le rendement du bloc. Il est utile pour déclarer l'objet d'une maquette à l'intérieur et de les utiliser sur les échantillons. .

feature "Course" do

  let(:school) {School.make!}

  context "Loged in" do
    before(:each) do
      switch_to_subdomain(school)
    end

    context "In the new course form" do
      before(:each) do
        click_link("Courses")
        click_link("New course")
      end

      scenario "New course" do               
      end

      scenario "A Course without name should not be accepted" do
      end

      scenario "A new course should not be created if there is another one with the same name in the same school" do
      end
    end
  end  
end   

En outre, le livre: Le livre RSpec, des programmeurs Pragmatique est une très bonne ressource pour vous initier sur les concepts de base derrière RSpec, Capybara, concombre et tout ce comportement Driven Development agile chose:)

Edit:

En outre, j'utiliser Machinist2 pour les appareils. https://github.com/notahat/machinist

Fonctionne très bien. Mieux que fille d'usine.

Il y a aussi Fabricator, qui ont un excellent site Web et une connexion DSL très utilisable.

https://github.com/paulelliott/fabrication

Vous pouvez utiliser Machiniste avec Contrefaçon afin de créer des données intelligentes.

https://github.com/sevenwire/forgery

 School.blueprint do
    name { "Pablo de olavide"}
 end

 Student.blueprint do
    first_name { Forgery::Name.first_name}
    last_name { Forgery::Name.last_name }
    school { School.make! }
 end

Vous pouvez combiner cela avec une tâche Thor afin de vous remplir la base de données de développement, pour voir l'application que l'utilisateur final verrait.

def populate        
    require File.expand_path('config/environment.rb')
    require File.expand_path('spec/support/blueprints.rb')        
    drop
    puts "populating database"
    1.times do |num|
       school = School.make!
       50.times do
       Student.make!(:school => school)

       end                                             
    5.times do        
       Course.make!(:school => school)          
       Professor.make!(:school => school)                
       end            
    end
end

La documentation de RSpec 2 a de nombreux exemples:

http://relishapp.com/rspec

En outre, cette annonce donne beaucoup d'autres conseils:

http://eggsonbread.com/2010 / 03/28 / my-rspec-meilleures pratiques et-conseils /

Un autre poste avec un très bon conseil:

http: // flux88 .com / 2011/05 / sec-up-vos-rspec-fichiers-avec-sujet-let-blocs /

L'optimisation du temps d'exécution des essais:

http://blog.leshill.org/blog/ 2011/10/23 / rapide specs.html

http://jeffkreeftmeijer.com/2011 / spec-aides-Bundler-setup-rapides rails-test-suites /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top