Ruby代码在我的html.在Cucumber测试期间没有执行erb文件



我正在创建一个Ruby on Rails web应用程序,并为我的视图之一创建一个index.html.erb文件,其中包含以下代码:

<div class="container" id="quickTickets">
    <% Game.all.each do |game| %>
        <h2>
            <%= link_to game.name, game_tickets_path(game.id), :id => "gameid_"+game.id.to_s %>
        </h2>
    <%end%>
</div>

当我在浏览器中查看它并显示每个游戏链接到单独页面的标题时,代码正常工作。然而,当我运行一个Cucumber/Capybara测试来模拟点击其中一个标题时,它失败了。

测试失败,因为在运行Cucumber测试时没有执行上面的Ruby代码块,所以页面最终包含一个空的<div>

例如,当我调用print page.html来检查我的Cucumber测试正在操作的HTML时,它显示以下内容:

<div class="container" id="quickTickets">
</div>

我花了几个小时试图找到任何文档或以前的错误,但还没有找到解决方案。什么好主意吗?

由于容器div在输出中,因此正在计算代码。可能发生的情况是,你实际上没有游戏对象可以展示。这要么是因为您没有在测试中创建任何游戏对象,要么是因为您使用的是JS驱动程序,并且没有将测试配置为不使用事务(https://github.com/jnicklas/capybara#transactions-and-database-setup)

最新更新