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
- FALSE_POSITIVE_BEHAVIOURS
-
@private
- 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 what RSpec
will do about matcher use which would potentially cause false positives in tests. Defaults to ‘:warn` since this is generally the desired behavior, but can also be set to `:raise` or `:nothing`.
@overload on_potential_false_positives
@return [Symbol] the behavior setting
@overload on_potential_false_positives
=(value)
@param [Symbol] behavior can be set to `:warn`, `:raise` or `:nothing` @return [Symbol] the behavior setting
Configures RSpec
to check predicate matchers to ‘be(true)` / `be(false)` (strict), or `be_truthy` / `be_falsey` (not strict). Historically, the default was `false`, but `true` is recommended.
@overload strict_predicate_matchers
@return [Boolean]
@overload strict_predicate_matchers
?
@return [Boolean]
@overload strict_predicate_matchers
=(value)
@param [Boolean] value
Public Class Methods
Source
# File lib/rspec/expectations/configuration.rb, line 29 def initialize @on_potential_false_positives = :warn @strict_predicate_matchers = false end
Public Instance Methods
Source
# File lib/rspec/expectations/configuration.rb, line 116 def add_should_and_should_not_to(*modules) modules.each do |mod| Expectations::Syntax.enable_should(mod) end end
:nocov: Because this is only really useful on 1.8, and hard to test elsewhere.
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.
Source
# File lib/rspec/expectations/configuration.rb, line 134 def backtrace_formatter @backtrace_formatter ||= if defined?(::RSpec.configuration.backtrace_formatter) ::RSpec.configuration.backtrace_formatter else NullBacktraceFormatter end end
Source
# File lib/rspec/expectations/configuration.rb, line 88 def color? ::RSpec.configuration.color_enabled? end
Source
# File lib/rspec/expectations/configuration.rb, line 230 def false_positives_handler FALSE_POSITIVE_BEHAVIOURS.fetch(@on_potential_false_positives) end
@private
Source
# File lib/rspec/expectations/configuration.rb, line 150 def include_chain_clauses_in_custom_matcher_descriptions? @include_chain_clauses_in_custom_matcher_descriptions ||= false 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.
Source
# File lib/rspec/expectations/configuration.rb, line 70 def max_formatted_output_length=(length) RSpec::Support::ObjectFormatter.default_instance.max_formatted_output_length = length end
Configures the maximum character length that RSpec
will print while formatting an object. You can set length to nil to prevent RSpec
from doing truncation. @param [Fixnum] length the number of characters to limit the formatted output to. @example
RSpec.configure do |rspec| rspec.expect_with :rspec do |c| c.max_formatted_output_length = 200 end end
Source
# File lib/rspec/expectations/configuration.rb, line 194 def on_potential_false_positives=(behavior) unless FALSE_POSITIVE_BEHAVIOURS.key?(behavior) raise ArgumentError, "Supported values are: #{FALSE_POSITIVE_BEHAVIOURS.keys}" end @on_potential_false_positives = behavior end
Source
# File lib/rspec/expectations/configuration.rb, line 155 def reset_syntaxes_to_default self.syntax = [:should, :expect] RSpec::Expectations::Syntax.warn_about_should! end
@private
Source
# File lib/rspec/expectations/configuration.rb, line 213 def strict_predicate_matchers=(value) raise ArgumentError, "Pass `true` or `false`" unless value == true || value == false @strict_predicate_matchers = value end
Source
# File lib/rspec/expectations/configuration.rb, line 218 def strict_predicate_matchers? @strict_predicate_matchers end
Source
# File lib/rspec/expectations/configuration.rb, line 80 def syntax syntaxes = [] syntaxes << :should if Expectations::Syntax.should_enabled? syntaxes << :expect if Expectations::Syntax.expect_enabled? syntaxes 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
Source
# File lib/rspec/expectations/configuration.rb, line 46 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
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
Source
# File lib/rspec/expectations/configuration.rb, line 173 def warn_about_potential_false_positives=(boolean) if boolean self.on_potential_false_positives = :warn elsif warn_about_potential_false_positives? self.on_potential_false_positives = :nothing else # no-op, handler is something else end end
Configures whether RSpec
will warn about matcher use which will potentially cause false positives in tests.
@param [Boolean] boolean
Source
# File lib/rspec/expectations/configuration.rb, line 225 def warn_about_potential_false_positives? on_potential_false_positives == :warn 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`.