2012-07-03 23 views
12

Jaki jest najlepszy sposób przetestowania widoków JavaScript (sprawdź czy strona działa poprawnie w języku JavaScript) w Railsach?Testowanie widoków JavaScript w Railsach

Powiedzmy, że mam stronę o nazwie /users/new, która zawiera formularz, który coś robi. Chciałbym to zrobić, aby przesłać formularz, a narzędzie do testowania JavaScript poinformuje mnie, czy strona się zepsuła, czy nie. Jaki jest najlepszy sposób na zrobienie tego?

mam natknąć trzech opcji do testowania:

  1. Konacha (najlepsze narzędzie do tej pory dla JS BDD) http://www.solitr.com/blog/2012/04/konacha-tutorial-javascript-testing-with-rails/

  2. JasmineRice (Jasmine + Rails + GUARD) https://github.com/bradphelan/jasminerice/

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

dwa pierwsze są w zasadzie nie do BDD i izolowanym testów. Ten ostatni jest bardziej do tego, czego szukam, ale Nie chcę mieć osobnej konfiguracji testowania dla JavaScript BDD i testowania integracji.

Czy ktoś ma lepsze rozwiązanie?

Odpowiedz

5

Jeśli używasz rspec, można użyć Capybara w teście integracji 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 

Pamiętaj, aby ustawić Capybara.javascript_driver = :webkit w spec_helper.rb.

+2

To jest to, co robimy dla dość dużej aplikacji. Działa, ale jest * bardzo * wolno. Naprawdę chcesz to zrobić tam, gdzie absolutnie potrzebujesz. –

8

Sprawdź projekt Teaspoon na github.

https://github.com/modeset/teaspoon

Obsługuje Mocha, jaśmin, i QUnit .. ma miłą obsługę wyświetlanie specyfikacje headlessly z PhantomJS (lub Selen Webdriver) i umożliwia wykorzystanie pełnego Rails rurociągu aktywów (coffeescript, spotkania, itp) .

Ponadto, był on pod dużym wpływem mojego doświadczenia z innymi biegaczami testowymi używającymi Rails.

+0

+1 za łyżeczkę do herbaty. Bardzo podoba mi się to wsparcie dla zasięgu. –

Powiązane problemy