class RSpec::Expectations::Configuration
Provides configuration options for rspec-expectations. If you are using rspec-core, you can access this via a block passed to `RSpec::Core::Configuration#expect_with`. Otherwise, you can access it via RSpec::Expectations.configuration.
@example
RSpec.configure do |rspec| rspec.expect_with :rspec do |c| # c is the config object end end # or RSpec::Expectations.configuration
Constants
- NullBacktraceFormatter
@api private Null implementation of a backtrace formatter used by default when rspec-core is not loaded. Does no filtering.
Attributes
Sets or gets the backtrace formatter. The backtrace formatter should implement `#format_backtrace(Array<String>)`. This is used to format backtraces of errors handled by the `raise_error` matcher.
If you are using rspec-core, rspec-core's backtrace formatting will be used (including respecting the presence or absence of the `–backtrace` option).
@!attribute [rw] #backtrace_formatter
Sets if custom matcher descriptions and failure messages should include clauses from methods defined using `chain`. @param value [Boolean]
Configures whether RSpec will warn about matcher use which will potentially cause false positives in tests.
@param value [Boolean]
Public Class Methods
# File lib/rspec/expectations/configuration.rb, line 21 def initialize @warn_about_potential_false_positives = true end
Public Instance Methods
Adds `should` and `should_not` to the given classes or modules. This can be used to ensure `should` works properly on things like proxy objects (particular `Delegator`-subclassed objects on 1.8).
@param [Array<Module>] modules the list of classes or modules
to add `should` and `should_not` to.
# File lib/rspec/expectations/configuration.rb, line 89 def add_should_and_should_not_to(*modules) modules.each do |mod| Expectations::Syntax.enable_should(mod) end end
# File lib/rspec/expectations/configuration.rb, line 106 def backtrace_formatter @backtrace_formatter ||= if defined?(::RSpec.configuration.backtrace_formatter) ::RSpec.configuration.backtrace_formatter else NullBacktraceFormatter end end
# File lib/rspec/expectations/configuration.rb, line 65 def color? ::RSpec.configuration.color_enabled? end
Indicates whether or not custom matcher descriptions and failure messages should include clauses from methods defined using `chain`. It is false by default for backwards compatibility.
# File lib/rspec/expectations/configuration.rb, line 122 def include_chain_clauses_in_custom_matcher_descriptions? @include_chain_clauses_in_custom_matcher_descriptions ||= false end
@private
# File lib/rspec/expectations/configuration.rb, line 127 def reset_syntaxes_to_default self.syntax = [:should, :expect] RSpec::Expectations::Syntax.warn_about_should! end
The list of configured syntaxes. @return [Array<Symbol>] the list of configured syntaxes. @example
unless RSpec::Matchers.configuration.syntax.include?(:expect) raise "this RSpec extension gem requires the rspec-expectations `:expect` syntax" end
# File lib/rspec/expectations/configuration.rb, line 57 def syntax syntaxes = [] syntaxes << :should if Expectations::Syntax.should_enabled? syntaxes << :expect if Expectations::Syntax.expect_enabled? syntaxes end
Configures the supported syntax. @param [Array<Symbol>, Symbol] values the syntaxes to enable @example
RSpec.configure do |rspec| rspec.expect_with :rspec do |c| c.syntax = :should # or c.syntax = :expect # or c.syntax = [:should, :expect] end end
# File lib/rspec/expectations/configuration.rb, line 37 def syntax=(values) if Array(values).include?(:expect) Expectations::Syntax.enable_expect else Expectations::Syntax.disable_expect end if Array(values).include?(:should) Expectations::Syntax.enable_should else Expectations::Syntax.disable_should end end
Indicates whether RSpec will warn about matcher use which will potentially cause false positives in tests, generally you want to avoid such scenarios so this defaults to `true`.
# File lib/rspec/expectations/configuration.rb, line 150 def warn_about_potential_false_positives? @warn_about_potential_false_positives end