module ActiveFedora::Noid::RSpec
Provides a test minter conforming to the `ActiveFedora::Noid::Minter` interface for use in unit tests. The test minter is faster and avoids unexpected interactions with cleanup code commonly runs in test suites (e.g. database cleanup).
Applications should reenable their production minter for integration tests when appropriate
@example general use
ActiveFedora::Noid::RSpec.disable_production_minter! # some unit tests with the test minter ActiveFedora::Noid::RSpec.enable_production_minter! # some integration tests with the original minter
@example using a custom test minter
ActiveFedora::Noid::RSpec.disable_production_minter!(test_minter: Minter)
@example use when included in RSpec
config
require 'active_fedora/noid/rspec' RSpec.configure do |config| config.include(ActiveFedora::Noid::RSpec) end before(:suite) { disable_production_minter! } after(:suite) { enable_production_minter! }
Constants
- DEFAULT_TEST_MINTER
Public Instance Methods
disable_production_minter!(test_minter: DEFAULT_TEST_MINTER)
click to toggle source
Replaces the configured production minter with a test minter.
@param test_minter [Class] an ActiveFedora::Noid::Minter
implementation
to use as a replacement minter
@return [void]
# File lib/active_fedora/noid/rspec.rb, line 41 def disable_production_minter!(test_minter: DEFAULT_TEST_MINTER) return nil if @original_minter @original_minter = ActiveFedora::Noid.config.minter_class ActiveFedora::Noid.configure do |noid_config| noid_config.minter_class = test_minter end end
enable_production_minter!()
click to toggle source
Re-enables the original configured minter.
@return [void]
# File lib/active_fedora/noid/rspec.rb, line 55 def enable_production_minter! return nil unless @original_minter ActiveFedora::Noid.configure do |noid_config| noid_config.minter_class = @original_minter end @original_minter = nil end