如何在Rails中使用gon和Jasminerice?

时间:2013-12-20 07:04:29

标签: ruby-on-rails jasmine

问 我在Rails 3.2上,并且正在使用gems'gon'和'jasminerice'。如何在设置gon数据的地方模仿控制器代码,如何在通过jasminerice进行测试时确保我的javascript文件可以使用这些gon数据?

ANSWER 我实际上自己提出了解决方案,我只是在这里张贴,以节省时间和挫折。第一步是创建一个'辅助方法'(即SpecHelper模块,参见https://github.com/bradphelan/jasminerice),它以模仿控制器代码的方式设置gon变量;我们称之为'helper1'。第二步是创建一个fixture(确保通过'loadFixtures'在你的规范中加载它),它有一个标题如下:

<head>
  <% helper1() %>
  <%= include_gon() %>
</head>

关键是要调用辅助方法之前'include_gon'行。

1 个答案:

答案 0 :(得分:-1)

如果你需要关注Jasmine中的Rails控制器,那就错了。

Jasmin用于Javascript单元测试。单元测试中的依赖性应降至最低。在前端单元测试中混合服务器逻辑是一个很大的问题。

更好的方法是使用夹具或工厂来提供所需的数据/上下文。

如果您需要测试集成,请使用Capybara,它也不需要这样的黑客攻击。