RSpec và dưa chuột là cả hai khung kiểm tra. RSpec bao gồm Kiểm thử Đơn vị truyền thống (có nghĩa là kiểm tra một lớp hoặc một phần của ứng dụng trong sự cô lập với phần còn lại của ứng dụng. Vì vậy, mô hình của bạn thực hiện những gì mà mô hình của bạn phải làm, bộ điều khiển thực hiện những gì nó được yêu cầu, vv).
RSpec và dưa chuột đều được sử dụng để kiểm tra chấp nhận (được gọi là ATDD, BDD, đặc điểm kỹ thuật bằng ví dụ, v.v. tùy thuộc vào người bạn yêu cầu). Đây là các thử nghiệm tích hợp theo trường hợp kinh doanh, có nghĩa là chúng mô phỏng cách người dùng sử dụng ứng dụng và sử dụng ngăn xếp Rails đầy đủ để các vấn đề về cách các phần khác nhau của ứng dụng hoạt động cùng nhau. tìm thấy.
Sự khác biệt chính giữa RSpec và Cucumber là yếu tố dễ đọc của doanh nghiệp. Điểm thu hút chính của Cucumber là đặc điểm kỹ thuật (tính năng) tách biệt với mã kiểm tra, do đó, chủ sở hữu sản phẩm của bạn có thể cung cấp hoặc xem lại đặc điểm kỹ thuật mà không cần phải tìm hiểu mã. Đây là các tệp .feature mà bạn tạo trong Cucumber. RSpec có một cơ chế tương tự, nhưng thay vào đó bạn mô tả một bước với một mô tả, bối cảnh hoặc khối có chứa đặc tả nghiệp vụ, và sau đó ngay lập tức có mã thực hiện câu lệnh đó. Cách tiếp cận này là dễ dàng hơn một chút đối với các nhà phát triển để làm việc với nhưng một chút khó khăn hơn cho những người không phải kỹ thuật.
Để sử dụng? Nếu bạn là nhà phát triển và chủ sở hữu sản phẩm duy nhất, thì tôi sẽ gắn bó với RSpec, tôi cảm thấy dễ hiểu hơn với người kĩ thuật, cung cấp một vài lợi thế trong việc giữ cho mọi thứ bị kiểm soát và kiểm soát, đồng thời giúp bạn thoát khỏi RegExs để kiểm tra các bước. Nếu bạn đang xây dựng điều này cho một khách hàng, và họ là thực hành liên quan đến các đặc điểm kỹ thuật, đi với dưa chuột cho thử nghiệm chấp nhận của bạn và sử dụng RSpec cho bài kiểm tra đơn vị.
Chỉ cần để chứng minh sự khác biệt chính giữa hai:
Dưa chuột:
#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
loạt blog này là tuyệt vời vào nhận đi với RSpec: http://everydayrails.com/2012/03/12/testing-series-intro.html
Để làm bạn bối rối hơn nữa, Minitest cũng có thể là một lựa chọn –
hoặc thậm chí capybara –
Capybara thực sự là một trình điều khiển có thể được sử dụng trong bất kỳ khung kiểm thử nào, không phải là một khung công tác trong và của chính nó.Watir-webdriver và Selenium là hai thứ thực hiện một chức năng tương tự, nhưng lái một trình duyệt thực sự và chậm hơn nhiều so với Capybara Rack Rack :: Test – DVG