ruby-on-rails - 在 RSpec 中为 Gem 编写测试

标签 ruby-on-rails ruby testing rspec rubygems

我正在尝试为我编写的 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/

相关文章:

ruby-on-rails - Ruby on Rails - 引用同一模型两次?

ruby-on-rails - 为什么ActiveRecord的:include do two queries?

java - 无法在 Selenium Webdriver 中设置 cookie

REST API 测试常见问题

java - 我如何故意创建一个简单的运行时错误?

ruby-on-rails - 建立这种关系的有效方法是什么?

ruby-on-rails - Heroku Postgres 错误:PGError:错误:关系 "organizations"不存在(ActiveRecord::StatementInvalid)

ruby-on-rails - Rails - 处理异常

ruby - 为什么我的 rdebug session 显示 "*** No sourcefile available"

ruby-on-rails - 代码读取 : why is the following code implemented like this?