Soru Raylar: İyi Rspec2 örnek kullanımı? (Ayrıca: Salatalık, Turşu, Capibara) [kapalı]


Rspec 2'yi test kütüphanesi olarak kullanan oldukça yeni bir açık kaynak uygulaması arıyorum. Deneyimli bir geliştiricinin kitaplığı tam olarak test etmek için kütüphaneden nasıl yararlandığını görmek isterim, çünkü kendi bilgimle ilgili şüphelerim var (testun gelmesinden ve kısmen de son Rspec sürümünün oldukça seyrek belgelerinden dolayı) sürekli iyileştirilmiş olsa da).

Eğer bir proje Salatalık, Turşu ve / veya Capibara'yı Rspec 2 ile birlikte kullanacaksa, sevinç için zıplayacağım.

Herhangi bir işaretçi?

Şerefe!


25
2018-01-06 18:17


Menşei




Cevaplar:


2 sentim:

Salatalık yerine Biftek kullanın. Bu RSpec özünde, basit ve iş yapıyor.

https://github.com/cavalle/steak

Capybara farklı sürücüler kullanmanıza izin verir. Bazı sürücüler javascript'i destekler, tarayıcıyla çalışır, daha hızlı, daha yavaş, vb. Swinger kullanarak test ettiğiniz özelliklerin en iyi sürücüsünü kullanın:

https://github.com/jeffkreeftmeijer/swinger

Kendi çatalım olan Akephalos'u kullanıyorum - bir sürücü - hızlı, destek javascript, UTF-8 (fork'umun eklediği şey) ve harici bir tarayıcıya gerek yok.

https://github.com/Nerian/akephalos2

RSpec için iyi bir uygulama 'Bağlam' kullanmaktır. Açıklamaya ihtiyacınız varsa bana sorun. Ayrıca, not al let yöntem. Blok geri dönüşleri ne olursa olsun geri döner. İçerideki nesneyi taklit etmenin ve bunları örneklerin üzerinde kullanmanın faydalıdır. .

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   

Ayrıca, kitap: Pragmatik Programcıların RSpec Kitabı, RSpec, Capybara, Salatalık ve tüm bu Davranış Driven Geliştirme çevik şeylerin arkasındaki temel kavramlar hakkında kendinizi başlatmak için çok iyi bir kaynaktır :)

Düzenle:

Ayrıca, Machinist2'yi fikstürler için kullanıyorum. https://github.com/notahat/machinist

Harika çalışıyor. Fabrika kızından daha iyi.

Mükemmel bir web sitesine ve çok kullanışlı bir DSL'ye sahip olan Fabricator da var.

https://github.com/paulelliott/fabrication

Akıllı veri oluşturmak için Makinist'i Forgery ile birlikte kullanabilirsiniz.

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

Uygulamayı son kullanıcı olarak görecek şekilde görmek için geliştirme veritabanını doldurmak için bunu bir Thor göreviyle birleştirebilirsiniz.

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

RSpec 2'nin belgelerinin birçok örneği vardır:

http://relishapp.com/rspec

Ayrıca, bu Mesaj diğer birçok ipucu verir:

http://eggsonbread.com/2010/03/28/my-rspec-best-practices-and-tips/

Çok iyi tavsiye ile başka bir yazı:

http://flux88.com/2011/05/dry-up-your-rspec-files-with-subject-let-blocks/

Testlerin yürütme süresini optimize etme:

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

http://jeffkreeftmeijer.com/2011/spec-helpers-bundler-setup-faster-rails-test-suites/


54
2018-01-06 18:31



Giriş için teşekkürler! Şu anda Factory Girl'ı kullanıyorum ama Machinist'e yakın gelecekte deneyebilirim. - polarblau
… Biftek hakkında okudum ve kesinlikle kendi "tarzım" (hä?) 'A daha yakın görünüyor, fakat daha iyi bir izlenim elde etmek için bir keresinde bir keresinde tümüyle bir keresinde Salatalık kullanmak istiyorum. Ben de RSpec kitabını satın almayı düşündüm, ipucu için teşekkürler, sanırım bunun peşinden gidebilirim! Ve kesinlikle "bağlam" deneyeceğim. Tekrar teşekkürler. - Yine de bazı açık projeye sahip olan herkes bir göz atabilir miydi? - polarblau
Görüyorsunuz, ustalar tarafından yapılan RSpec2 özelliklerini izlemek için gerçekten iyi bir yer RSpec2 git deposunun kendisidir :) Salatalık: github.com/dchelimsky/rspec/tree/master/features   ve RSpec; github.com/dchelimsky/rspec/tree/master/spec - Nerian
Birisinin iyi bir cevap veya yorum verdiğini düşündüğünüzde, ona bir oy verin. Teşekkür ederim. - Nerian
Üzgünüm @Nerian, saygınlığım hala size oy vermek için düşük. Elimden geldiğince bunu yapacağım. Rspec kitabını şimdi aldım. Harika görünüyor. Yine de, vahşi ortamda daha karmaşık bir gerçek dünya örneği arıyor. Tekrar teşekkürler! - polarblau