2012-07-03 37 views
12

Cách tốt nhất để kiểm tra chế độ xem JavaScript (kiểm tra xem trang có hoạt động khôn ngoan với JavaScript) trong Rails không?Kiểm tra chế độ xem JavaScript trong Rails

Vì vậy, giả sử tôi có một trang gọi là /users/new có chứa biểu mẫu hoạt động. Tôi muốn có nó để tôi gửi biểu mẫu và công cụ kiểm tra JavaScript sẽ cho tôi biết liệu trang đó có bị hỏng hay không. Cách tốt nhất để làm việc này là gì?

Tôi đã đi qua ba lựa chọn để thử nghiệm:

  1. Konacha (công cụ tốt nhất cho đến nay cho JS BDD) http://www.solitr.com/blog/2012/04/konacha-tutorial-javascript-testing-with-rails/

  2. gạo thơm hoa nhài (Jasmine + Rails + Guard) https://github.com/bradphelan/jasminerice/

  3. Capybara Webkit. https://github.com/thoughtbot/capybara-webkit

Hai đầu tiên là về cơ bản có cho BDD và cô lập thử nghiệm. Điều cuối cùng là nhiều hơn cho những gì tôi đang tìm kiếm, nhưng Tôi không muốn có một thiết lập thử nghiệm riêng biệt cho BDD JavaScript và thử nghiệm tích hợp.

Có ai có giải pháp tốt hơn không?

Trả lời

5

Nếu bạn đang sử dụng RSpec, bạn có thể sử dụng Capybara trong một thử nghiệm hội nhập RSpec:

spec/requests/my_spec.rb: 

describe "my test", :js => true do 
    it "should do something" do 
    visit '/some/path' 

    click_on 'Submit' 

    page.should have_content 'Congratulations!' 
    end 
end 

Hãy nhớ để thiết lập Capybara.javascript_driver = :webkit trong spec_helper.rb.

+2

Đây là những gì chúng tôi làm cho một ứng dụng khá lớn. Nó hoạt động, nhưng * rất * chậm. Bạn chỉ thực sự muốn làm điều này, nơi bạn hoàn toàn cần. –

8

Kiểm tra dự án Teaspoon trên github.

https://github.com/modeset/teaspoon

Nó hỗ trợ Mocha, Jasmine, và QUnit .. đã hỗ trợ tốt đẹp cho chạy thông số kỹ thuật của bạn headlessly với PhantomJS (hoặc Selenium Webdriver), và cho phép sử dụng các đường ống dẫn tài sản đầy đủ Rails (coffeescript, đồ đạc, vv) .

Ngoài ra, nó đã bị ảnh hưởng nặng nề bởi trải nghiệm của tôi với những người chạy thử khác bằng Rails.

+0

+1 cho Teaspoon. Tôi thực sự thích hỗ trợ bảo hiểm của nó. –

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