2012-10-31 51 views
4

我想要测试运行在使用Cucumber,水豚,capybara-webkit,selenium-webdriver,rspec和jasmine的Rails 3.2.8之上的Backbone应用程序。我使用eco作为骨干模板的模板引擎。集成使用Cucumber和Capybara测试Backbone.js应用程序

我的问题是当我使用@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

我一直在做这方面的一些研究。它大部分都是围绕Ember.js而不是Backbone,但Pamela Fox只是写了一篇关于测试Coursera的Backbone.js前端的博客文章,这可能会有所帮助http://blog.pamelafox.org/2013/06/testing-backbone-frontends.html另外,你有没有试过用与你同样的方式测试水豚?通用导轨应用程序:js => true?值得尝试。

相关问题