【问题标题】:How to use gon with Jasminerice in Rails?如何在 Rails 中使用 gon 和 Jasmine Rice?
【发布时间】:2014-01-08 23:46:55
【问题描述】:

问题 我在 Rails 3.2 上,正在使用宝石“gon”和“jasminerice”。如何在设置 gon 数据的地方模拟控制器代码,以及如何确保在通过 jasminerice 进行测试时这些 gon 数据可用于我的 javascript 文件?

回答 实际上,我自己想出了解决方案,只是为了节省时间和挫败感而在此处发布。第一步是创建一个“辅助方法”(即 SpecHelper 模块,参见https://github.com/bradphelan/jasminerice),它以模仿控制器代码的方式设置 gon 变量;我们称它为“helper1”。第二步是创建一个fixture(确保通过'loadFixtures'将它加载到你的规范中),它的标题如下:

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

关键是将辅助方法的调用放在“include_gon”行之前。

【问题讨论】:

  • 我不确定它是如何工作的...因为夹具文件是.html 文件,而不是.html.erb 文件,那么它实际上如何插入&lt;%= include_gon %&gt; 之类的东西?

标签: ruby-on-rails jasmine


【解决方案1】:

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

Jasmin 用于 Javascript 单元测试。单元测试中的依赖关系应该减少到最低限度。在前端单元测试中混合服务器逻辑是一个很大的问题。

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

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

【讨论】:

  • 实际上正在使用一个夹具(第二步)。我所说的“控制器代码”是关于准备 gon 的。
猜你喜欢
  • 1970-01-01
  • 2019-06-10
  • 2014-12-31
  • 2020-02-19
  • 2013-06-14
  • 2017-09-26
  • 2014-11-27
  • 2016-08-02
  • 2012-10-03
相关资源
最近更新 更多