测试使用 html 转义的 Rails 助手

Testing Rails helper that uses html escaping

我正在尝试在 Rails 4 中测试调用 h(some_content) 的助手,但是当我 运行 我的单元测试时,我收到:undefined method 'h' for PageHelperTest.

如何在我的帮助程序中调用 h,但仍然能够在测试中执行代码?当点击网站时,代码可以正常工作。

h 方法是在 ERB::Util 上定义的,它在辅助测试中不可用。我通过将助手更改为调用 ERB::Util.h(some_content)

来解决问题

嗯,我刚遇到类似的问题。 但是,仅仅为了通过测试而更改助手对我来说是不行的。

所以我尝试了一下并解决了它(但是在 Rails 3.2.22 中):

include ERB::Util alias_method :html_escape, :h

我想这不是最干净的方法(别名,如果另一个助手需要其他东西怎么办)。所以我想会有一些更好的方法(包括一些模块或诸如此类的东西) - 但这个有效。