问 我在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'行。
答案 0 :(得分:-1)
如果你需要关注Jasmine中的Rails控制器,那就错了。
Jasmin用于Javascript单元测试。单元测试中的依赖性应降至最低。在前端单元测试中混合服务器逻辑是一个很大的问题。
更好的方法是使用夹具或工厂来提供所需的数据/上下文。
如果您需要测试集成,请使用Capybara,它也不需要这样的黑客攻击。