简体   繁体   中英

how to require a gem in rails test?

How do you test gem functionality? I'm trying to figure out why something isn't working the way the docs suggest, and set up my own version of these . Yet my test fail:

19: ...
18: ...
#...etc....
5: from /Users/me/code/project/test/shrine_test.rb:5:in `<top (required)>'
4: from /Users/me/code/project/test/shrine_test.rb:5:in `require'
3: from /Users/me/.rvm/gems/ruby-2.5.0/gems/lockbox-0.4.8/lib/lockbox.rb:20:in `<top (required)>'
2: from /Users/me/.rvm/gems/ruby-2.5.0/gems/lockbox-0.4.8/lib/lockbox.rb:20:in `require'
1: from /Users/me/.rvm/gems/ruby-2.5.0/gems/lockbox-0.4.8/lib/lockbox/railtie.rb:1:in `<top (required)>'
/Users/me/.rvm/gems/ruby-2.5.0/gems/lockbox-0.4.8/lib/lockbox/railtie.rb:2:in `<module:Lockbox>': uninitialized constant Rails::Railtie (NameError)
Did you mean?  Rails

This is my test file, shrine_test.rb :

 require "bundler/setup"
 Bundler.setup
 require "minitest/autorun"
 require "minitest/pride"
 require "lockbox" #this is the line 5 from above

 $logger = ActiveSupport::Logger.new(ENV["VERBOSE"] ? STDOUT : nil)
 require_relative "support/shrine"
 require_relative "support/active_record"
 Lockbox.master_key = SecureRandom.random_bytes(32)

class ShrineTest < Minitest::Test
 #tests here
end

假设 Gemfile 中的 gem 在默认组中(不在任何group :environment do block),将Bundler.setup替换为

Bundler.require(:default)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM