【问题标题】:Streamline Rspec Test of Rails Helper简化 Rails Helper 的 Rspec 测试
【发布时间】:2015-01-28 22:44:54
【问题描述】:

我目前正在使用 Rspec(3) 成功测试 Rails(4.2) 助手。但是,测试文件设置有点麻烦。如何简化 require 和/或 include 行?

# spec/helpers/nav_helper_spec.rb
require 'spec_helper'
require_relative '../../app/helpers/nav_helper' # this seems bulky

describe NavHelper do
  include NavHelper # this seems repetitive
  ...
end

提前致谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 rspec rspec3


    【解决方案1】:

    如果您有一个“默认”设置,除了spec_helper 之外,您可能还有一个rails_helper。如果您不介意在这个规范中加载所有 Rails 目录(有点性能影响),您可以要求它而不是 spec_helper(清理要求)。但是只包含你需要的并没有错,它会运行得更快。

    如果 Rspec 知道规范类型,它也会为你混入帮助程序。您可以在规范助手中包含 config.infer_spec_type_from_file_location!,或者在 describe 声明中包含类型:

    describe NavHelper, type: :helper do
    

    无论哪种方式,您都可以使用 expect(helper.method_name).to eq(result) 之类的东西,而无需明确包含该模块。

    【讨论】:

    • 我已经有了那个配置行,无论我是否指定类型,除非我特别包含,否则辅助模块的方法不可用。另外,看来至少我应该require_relative。所有这些在另一个应用程序中工作得更干净,但我看不出有什么不同。感谢您的回复!
    • 确保您的文件命名正确并且位于正确的目录中:请参阅here
    • 是的。我已经用文件名/位置更新了示例。抱歉我的回复延迟!
    • 听起来您要么没有 rails 帮助文件,要么该文件不包含完整环境
    • 嗯...你能指出包含完整环境的配置吗?
    猜你喜欢
    • 1970-01-01
    • 2014-09-19
    • 2019-08-12
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多