我正在尝试为我编写的 gem 编写 RSpec 测试,但我无法让测试识别我编写的模块以及与这些模块相关的方法。
这是我的spec_helper.rb:
require 'rspec'
RSpec.configure do |config|
end
我的规范文件:
require 'spec_helper'
describe MyCompany::SomeHelper do
describe '#self.get_token' do
token = MyCompany::SomeHelper.get_token
end
end
当我运行测试时,收到此错误消息:未定义的方法 `get_token' for MyCompany::SomeHelper:Module (NoMethodError)。
当我将 gem 包含在另一个应用程序中时,它本身工作得很好。我想我可能没有正确配置 RSpec 中的某些内容,有人可以帮忙吗?
最佳答案
这种困惑可能是由于 Rails 造成的,因为 Rails 加载了所有内容,并且需要“spec_helper”是您唯一需要在那里做的事情。
RSpec 会自动将 lib 目录添加到您的加载路径,因此您可以轻松地从规范中获取代码。
假设您要测试此文件:lib/my_gem_name/my_class.rb
,然后将此代码放在您的规范之上:
require 'my_gem_name/my_class'
如果您不打算在 spec_helper 中配置任何内容,则无需创建它并需要它。事实上,如果您正在进行纯粹的孤立测试,我建议您不要这样做。
关于ruby-on-rails - 在 RSpec 中为 Gem 编写测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13866644/