are a description, metadata, and block • Creates an anonymous subclass of ExampleGroup • Executes the block in the context of the class RSpec.describe Name, metadata: true do #stuff end
Class.new(parent) subclass.set_it_up(description, *args, &example_group_block) subclass.module_exec(&example_group_block) if example_group_block MemoizedHelpers.define_helpers_on(subclass) subclass end
Class.new(parent) subclass.set_it_up(description, *args, &example_group_block) subclass.module_exec(&example_group_block) if example_group_block MemoizedHelpers.define_helpers_on(subclass) subclass end
of ExampleGroup • Arguments are description, metadata, and a block • Assigns the example to an array class attribute of the ExampleGroup it(“produces a sort name”) do #stuff end
'Expected example to fail since it is pending, but it passed.', [location] end rescue Pending::SkipDeclaredInExample # no-op, required metadata has already been set by the `skip` # method. rescue Exception => e set_exception(e) ensure run_after_example finish(reporter) end
'Expected example to fail since it is pending, but it passed.', [location] end rescue Pending::SkipDeclaredInExample # no-op, required metadata has already been set by the `skip` # method. rescue Exception => e set_exception(e) ensure run_after_example finish(reporter) end
'Expected example to fail since it is pending, but it passed.', [location] end rescue Pending::SkipDeclaredInExample # no-op, required metadata has already been set by the `skip` # method. rescue Exception => e set_exception(e) ensure run_after_example finish(reporter) end
'Expected example to fail since it is pending, but it passed.', [location] end rescue Pending::SkipDeclaredInExample # no-op, required metadata has already been set by the `skip` # method. rescue Exception => e set_exception(e) ensure run_after_example finish(reporter) end
'Expected example to fail since it is pending, but it passed.', [location] end rescue Pending::SkipDeclaredInExample # no-op, required metadata has already been set by the `skip` # method. rescue Exception => e set_exception(e) ensure run_after_example finish(reporter) end
'Expected example to fail since it is pending, but it passed.', [location] end rescue Pending::SkipDeclaredInExample # no-op, required metadata has already been set by the `skip` # method. rescue Exception => e set_exception(e) ensure run_after_example finish(reporter) end
&block) case method.to_s when BE_PREDICATE_REGEX BuiltIn::BePredicate.new(method, *args, &block) when HAS_REGEX BuiltIn::Has.new(method, *args, &block) else super end end
:! define_example_method :" end end module Matchers def #(value=::RSpec::Expectations::ExpectationTarget::UndefinedValue, &block) ::RSpec::Expectations::ExpectationTarget.for(value, block) end alias_matcher :❤, :eq end end
"assigns a rating category" do user = User.new() expect(user).to receive(:credit_rating).and_return(1000) expect(user.rating_category).to eq("approved") end end
{ CallerFilter.first_non_rspec_line } meth_double = method_double_for(method_name) if null_object? && !block meth_double.add_default_stub(@error_generator, @order_group, location, opts) do @object end end meth_double.add_expectation @error_generator, @order_group, location, opts, &block end
{ CallerFilter.first_non_rspec_line } meth_double = method_double_for(method_name) if null_object? && !block meth_double.add_default_stub(@error_generator, @order_group, location, opts) do @object end end meth_double.add_expectation @error_generator, @order_group, location, opts, &block end
{ CallerFilter.first_non_rspec_line } meth_double = method_double_for(method_name) if null_object? && !block meth_double.add_default_stub(@error_generator, @order_group, location, opts) do @object end end meth_double.add_expectation @error_generator, @order_group, location, opts, &block end
method_name, visibility) do |method_double, method_name, visibility| define_method(method_name) do |*args, &block| method_double.proxy_method_invoked(self, *args, &block) end __send__(visibility, method_name) end @method_is_proxied = true end def proxy_method_invoked(_obj, *args, &block) @proxy.message_received method_name, *args, &block end
method_name, visibility) do |method_double, method_name, visibility| define_method(method_name) do |*args, &block| method_double.proxy_method_invoked(self, *args, &block) end __send__(visibility, method_name) end @method_is_proxied = true end def proxy_method_invoked(_obj, *args, &block) @proxy.message_received method_name, *args, &block end
method_name, visibility) do |method_double, method_name, visibility| define_method(method_name) do |*args, &block| method_double.proxy_method_invoked(self, *args, &block) end __send__(visibility, method_name) end @method_is_proxied = true end def proxy_method_invoked(_obj, *args, &block) @proxy.message_received method_name, *args, &block end
method_name, visibility) do |method_double, method_name, visibility| define_method(method_name) do |*args, &block| method_double.proxy_method_invoked(self, *args, &block) end __send__(visibility, method_name) end @method_is_proxied = true end def proxy_method_invoked(_obj, *args, &block) @proxy.message_received method_name, *args, &block end
method_name, visibility) do |method_double, method_name, visibility| define_method(method_name) do |*args, &block| method_double.proxy_method_invoked(self, *args, &block) end __send__(visibility, method_name) end @method_is_proxied = true end def proxy_method_invoked(_obj, *args, &block) @proxy.message_received method_name, *args, &block end