RSpec ve Salatalık, her ikisi de test çerçeveleridir. RSpec, geleneksel Birim Testini (yani uygulamanın bir sınıfını veya bir kısmını uygulamanın geri kalanından bağımsız olarak test etmek anlamına gelir. Bu nedenle modeliniz, modelinizin yapması gereken şeyi yapar, kontrolörün yapması gereken şeyi yapar, vb.).
RSpec ve salatalık hem (kim soracak bağlı vb ATDD, BDD denir, Örnek Şartnameyi) Kabul Testi için kullanılmaktadır. Bunlar, bir kullanıcının uygulamayı nasıl kullandığını simüle ettikleri ve Rails yığınının tamamını kullandıklarından, uygulamanızın farklı bölümlerinin birlikte çalıştığı şekilde, birim testinin olmayacağı bir şekilde bulunabileceği anlamına gelen, işyeri tarafından yönetilen Entegrasyon Testleridir. bulabilirsiniz.
RSpec ve Salatalık arasındaki temel fark, iş okunabilirlik faktörüdür. Salatalığın ana çekimi, spesifikasyonun (özellikler) test kodundan ayrı olmasıdır, bu nedenle ürün sahipleriniz, kodları kazmak zorunda kalmadan belirtimi sağlayabilir veya inceleyebilir. Bunlar, Salatalık'ta yaptığınız .feature dosyaları. RSpec'in benzer bir mekanizması vardır, ancak bunun yerine, tanımlamayı, İçeriği veya İş spesifikasyonunu içeren bloğu içeren bir adımı tanımlarsınız ve sonra bu ifadeyi yürüten kodu hemen alırsınız. Bu yaklaşım, geliştiricilerin çalışmak için biraz daha kolay ama teknik olmayan insanlar için biraz daha zor.
Hangi Web sitesini kullanın? Tek geliştirici ve ürün sahibi iseniz, o zaman RSpec ile sadık kalırdım, teknik bir kişinin anlaması daha kolay olur, kapsamı ve kontrolü kontrol altında tutmak için birkaç avantaj sunar ve test için RegEx'lerle uğraşmanıza engel olur. adım. Bunu bir müşteri için yapıyorsanız ve Şartname ile ilgili olarak elleriniz varsa Kabul Testi için Salatalık ile gidin ve Birim Testleri için RSpec kullanın.
Sadece ikisi arasındaki ana fark göstermek için:
Salatalık:
#articles.feature
Given an article exists called "Testing Demonstration"
When I visit the list of articles
Then I should see an article called "Testing Demonstration"
#article_steps.rb
Given /^an article exists called "(.+)"$/ do |title|
FactoryGirl.create(:article, title: title)
end
When /^I visit the list of articles$/ do
visit articles_path
end
Then /^I should see an article called "(.+)"$/ do |title|
page.should have_content title
end
RSpec
describe "Articles" do
let(:article) { FactoryGirl.create(:article) }
context "Index Page" do
before { visit articles_path }
it { page.should have_content article.title }
end
end
Bu blog serisi elde RSpec ile devam mükemmel: http://everydayrails.com/2012/03/12/testing-series-intro.html
Minitest sizi daha da şaşırtmak için bir seçenek de olabilir –
veya hatta capybara –
Capybara gerçekten de test çerçevelerinin herhangi birinde, kendi içinde ve dışında bir çerçevede kullanılabilecek bir sürücüdür.Watir-webdriver ve Selenium, benzer işlevleri yerine getiren iki şeydir, ancak gerçek bir tarayıcıyı sürdürebilir ve Capybara'dan daha yavaştır. Rack :: Test – DVG