2010-10-01 38 views
6

Có một số tùy chọn cho Thử nghiệm toàn bộ ngăn xếp của ứng dụng Rails. Một số sử dụng trình duyệt thực, một số là không đầu, một số không chạy javascript ở tất cả.Tùy chọn kiểm tra ngăn xếp đầy đủ trong Ruby on Rails

Bạn sử dụng hoặc giới thiệu công cụ nào và tại sao?

Danh sách mô phỏng trình duyệt hoặc automators:

  • Rails built-in hỗ trợ cho hội nhập và chức năng kiểm tra (không JS)
  • Webrat
  • Webrat :: selen
  • Selenium
  • Celerity (thông qua Culerity)
  • Watir
  • ...

Danh sách DSL thử nghiệm và khuôn khổ:

  • Rails giá trị mặc định (khẳng định, ...)
  • shoulda
  • Dưa chuột
  • Capybara (thống nhất DSL cho một số trình mô phỏng trình duyệt)
  • ...
+0

Rất tiếc ... tất cả các câu trả lời hay, nhưng đó là câu trả lời hay nhất? –

Trả lời

1

Tôi đã sử dụng nhiều thứ trong sự nghiệp Rails của mình trong vài năm qua.

Hiện đang làm việc trên một ứng dụng Rails khá lớn trên JRuby với phạm vi kiểm tra rất vững chắc và ngăn xếp của chúng tôi trông giống như sau.

đơn vị kiểm tra:

  • RSpec vùng phủ sóng của các mô hình, giúp việc, thư viện và bộ điều khiển. bảo hiểm điều khiển có xu hướng được rất cao cấp
  • bảo hiểm JSpec cho một dự án được sử dụng một số cạnh khá cắt JS và HTML 5 wizardry

thử nghiệm chức năng:

  • dưa chuột sử dụng Capybara và Culerity (chúng tôi vừa chuyển đổi từ WebRat để nhận được mức độ phù hợp của JS-heavy front-end từ Cucumber)
  • Selenium hiện là "cũ" và từ từ được di chuyển sang dưa chuột/capybara
1

Trong dự án tôi hiện đang làm việc, để kiểm tra ngăn xếp đầy đủ, chúng tôi đang sử dụng Cucumber với capybara làm trình điều khiển.

Giao diện người dùng rất nặng, tôi đã thử một vài trình điều khiển trình duyệt không đầu (capybara-envjs và akephalos), nhưng cả hai đều là các kiểm tra không chính xác được chuyển qua trình duyệt thực.

1

Tôi đang sử dụng Cucumber + Capybara với sự kết hợp giữa selenium-webdriver và trình điều khiển giá thử nghiệm. Capybara thực hiện tốt công việc trừu tượng hóa sự khác biệt giữa các thử nghiệm trong trình duyệt được điều khiển bởi selenium-webdriver để kiểm tra xem JavaScript có hoạt động trong trình duyệt hay không, nhưng phải mất một thời gian để chạy và kiểm tra. bộ điều khiển/hành động, chạy nhanh hơn nhiều nhưng không kiểm tra JavaScript. Điều này có nghĩa rằng cùng một tập hợp các kịch bản và định nghĩa bước có thể được chạy trong trình duyệt hay không mà không phải duy trì các tập hợp các định nghĩa bước trùng lặp.

2

Tất cả các ứng dụng đường ray đều được hưởng lợi từ việc kiểm tra đơn vị và chức năng tốt, cho dù bạn sử dụng rspec hay shoulda vv, chủ yếu là vấn đề sở thích cá nhân. Tôi là một fan hâm mộ của shoulda chủ yếu là cho các khối bối cảnh nó cung cấp, làm cho việc thiết lập các kịch bản thử nghiệm dễ dàng hơn và rõ ràng hơn để hiểu.

Tôi không nghĩ trình mô phỏng/trình tự động của trình duyệt là cần thiết trừ khi ứng dụng của bạn khá nặng javascript. Tôi khuyên bạn nên chỉ sử dụng chúng để kiểm tra javascript, và cho mục đích đó nó chắc chắn tốt hơn để đi với lái xe một trình duyệt thực hơn là để mô phỏng. Các ứng dụng tôi đang làm việc trên bây giờ là khá javascript nặng và chúng tôi đang sử dụng cucumber cùng với watir/firewatir để chạy thử nghiệm dưa chuột của chúng tôi trong firefox cho các chức năng javascript hướng trên trang web của chúng tôi.

Các vấn đề liên quan