0
我创建一个Ruby on Rails的web应用程序,并有index.html.erb文件包含下面的代码我的意见之一:Ruby代码在我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测试来模拟点击其中一个标题时,它会失败。
测试失败,因为上面的Ruby代码块在运行Cucumber测试时未执行,所以页面最终包含空的<div>
。
例如,当我做出print page.html
打电话来检查我的黄瓜测试上运行的HTML,它显示以下内容:
<div class="container" id="quickTickets">
</div>
我已经花了几个小时试图找到任何文件或以前的错误像这样,但还没有找到解决方案。有任何想法吗?
我把它加入游戏的工作还没有配置你的测试在我的Cucumber测试中直接对我的db。如果我理解正确,您必须在Cucumber测试本身中显式创建Game对象,而不是让测试与db交互? – user1874182
@ user1874182测试一般都是在自己的环境与自己的数据库实例中运行,而数据库实例每次测试之间清除(或如果使用事务处理模式非JS能够司机跑这么没什么每居然被提交),以便测试彼此隔离。因此,每个测试都需要在数据库中创建需要测试的任何测试对象。 –