测试Ruby模块

时间:2017-01-05 15:01:17

标签: ruby-on-rails ruby rspec

我是Ruby和RSpec的新手。我想为这个模块创建基本的Spec文件:

module DownloadAttemptsHelper

  def download_attempt_filter_select_options
    search_types = [
      [I18n.t("helpers.download_attempts.search_types_default"),          'default'          ],
      [I18n.t("helpers.download_attempts.search_types_account_id"),      'account_id'      ],
      [I18n.t("helpers.download_attempts.search_types_remote_ip"),        'remote_ip'        ],
    ]
    options_for_select(search_types)
  end
end

小测试

describe DownloadAttemptsHelper do
  it "does something" do
    expect(1).to be_odd
  end
end

我明白了:

`<top (required)>': uninitialized constant DownloadAttemptsHelper (NameError)

我是否需要导入目录路径和模块名称? 你能给我一些非常基本的例子来测试这个模块吗?

2 个答案:

答案 0 :(得分:0)

如果您正在使用Rails,则需要确保在服务器启动时加载模块。打开rails c并检查是否可以访问您的模块。如果没有,您可以执行此处所述的Auto-loading lib files in Rails 4

也就是说,在lib目录中创建Rails自动加载类,如果你的帮助程序所在的那样。

答案 1 :(得分:-1)

您必须在rspec测试文件中包含该模块,以使其在测试用例中可用:

describe "DownloadAttemptsHelper" do
  include DownloadAttemptsHelper

  it "does something" do
    expect(1).to be_odd
  end
end