2012-10-31 7 views
4

Cucumber, capybara, capybara-webkit, selenium-webdriver, rspec 및 jasmine을 사용하여 Rails 3.2.8 위에 실행되는 Backbone 응용 프로그램을 테스트하려고합니다. 백본 템플릿을위한 템플릿 엔진으로 eco를 사용하고 있습니다.통합 Cucumber와 Capybara로 Backbone.js 응용 프로그램 테스트

내 문제는 capybara-webkit 또는 selenium이있는 @javascript 태그를 사용하여 시나리오를 실행할 때 표시되는 페이지에 모든 모델 특성 데이터가 들어 있지 않은 경우입니다. 여기

는 시나리오 : 페이지는 질문을 표시하지 않는 시나리오는 "내가 '? 그것에 대해 무엇을'볼 수 '단계에서 실패

@javascript 
Scenario : first scenario 
    Given There is Model with "name" as name and "What is it about ?" as associated questions 
    When I want to fill the questionnaire 
    Then I should be on the SPA form 
    And I should see "name" 
    And I should see "What is it about?" 

있지만 표시" 이름 " console.log를 사용하여 백본 코드에 여러 디버그 문을 넣었습니다. 모델이 모든 특성과 함께 맞는지 확인할 수 있습니다. 또한이 문제없이 라이브에

템플릿을 노력하는 것은 다음과 같다 : 'show.jst.eco'

<p class="text-info"><%= @model.name %></p> 

<form id="quidget-form" class="form-vertical"> 
    <% for question in @model.questions: %> 
    <div class="issue_field"> 
     <label class="string optional control-label"><%= question.question.question_text %></label> 
     <div class="control-group text"> 
     <textarea class="text answer" name="question-<%= question.question.id %>" id="question_<%= question.question.id %>" data-question="<%= question.question.question_text %>" rows="3"> 
     </textarea> 
     </div> 
    </div> 
    <% end %> 

    <div class="controls"> 
    <input type="submit" value="Additional Informations" id="quidget-step-one" class="btn btn-success"> 


텍스트 영역이 표시되지만 질문 위하지 라벨 텍스트

아이디어가 있으십니까? 나는이 패스를보고 더 많은 단계로 더 복잡한 로직을 테스트 할 수 있기를 바란다.

감사합니다.

+0

이것은 여러분이 원하는 답변이 아닐 수도 있지만 내 경험에 의하면 webkit과 selenium은 그리 신뢰할 만하지 않습니다. 또한 브라우저 간 테스트에서 사용자를 구해 내지 못합니다. 이 디버깅을 시도 할 수는 있지만 가치가있는 것보다 더 많은 시간을 할애 할 수 있습니다. 일반적으로 jasmine을 사용하여 JS 단위 테스트를 수행 한 다음 수동으로 브라우저 간 호환성을 검사합니다. – fedenusy

답변

0

저는 이런 종류의 연구도하고 있습니다. 그것의 대부분은 Backbone 대신에 Ember.js에 초점을 맞추었지만 Pamela Fox는 Coursera에 대한 Backbone.js 프론트 엔드 테스트에 대한 블로그 게시물을 작성했습니다. 도움이 될 수 있습니다. http://blog.pamelafox.org/2013/06/testing-backbone-frontends.html 또한 capybara를 사용하여 동일한 방법으로 테스트 해 보았습니까? 일반 레일 응용 프로그램 :js => true? 노력할 가치가 있습니다.