rspec-mocks 2.10.1 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Changelog.md +26 -1
- data/README.md +14 -2
- data/features/stubbing_constants/README.md +62 -0
- data/features/stubbing_constants/stub_defined_constant.feature +79 -0
- data/features/stubbing_constants/stub_undefined_constant.feature +50 -0
- data/lib/rspec/mocks/any_instance.rb +37 -1
- data/lib/rspec/mocks/any_instance/chain.rb +0 -81
- data/lib/rspec/mocks/any_instance/expectation_chain.rb +57 -0
- data/lib/rspec/mocks/any_instance/recorder.rb +6 -1
- data/lib/rspec/mocks/any_instance/stub_chain.rb +37 -0
- data/lib/rspec/mocks/any_instance/stub_chain_chain.rb +25 -0
- data/lib/rspec/mocks/argument_list_matcher.rb +93 -0
- data/lib/rspec/mocks/argument_matchers.rb +39 -31
- data/lib/rspec/mocks/error_generator.rb +7 -0
- data/lib/rspec/mocks/example_methods.rb +41 -0
- data/lib/rspec/mocks/framework.rb +2 -1
- data/lib/rspec/mocks/message_expectation.rb +21 -13
- data/lib/rspec/mocks/methods.rb +4 -0
- data/lib/rspec/mocks/proxy.rb +10 -4
- data/lib/rspec/mocks/stub_const.rb +280 -0
- data/lib/rspec/mocks/test_double.rb +3 -2
- data/lib/rspec/mocks/version.rb +1 -1
- data/spec/rspec/mocks/any_instance/message_chains_spec.rb +1 -1
- data/spec/rspec/mocks/any_instance_spec.rb +66 -26
- data/spec/rspec/mocks/argument_expectation_spec.rb +7 -7
- data/spec/rspec/mocks/at_least_spec.rb +14 -0
- data/spec/rspec/mocks/block_return_value_spec.rb +8 -0
- data/spec/rspec/mocks/mock_spec.rb +33 -20
- data/spec/rspec/mocks/multiple_return_value_spec.rb +2 -2
- data/spec/rspec/mocks/null_object_mock_spec.rb +22 -0
- data/spec/rspec/mocks/stub_chain_spec.rb +45 -45
- data/spec/rspec/mocks/stub_const_spec.rb +309 -0
- data/spec/rspec/mocks/stub_spec.rb +2 -2
- data/spec/spec_helper.rb +0 -40
- metadata +18 -6
- data/lib/rspec/mocks/argument_expectation.rb +0 -52
| @@ -208,10 +208,10 @@ module RSpec | |
| 208 208 | 
             
                    end.should raise_error(/received :foo with unexpected arguments/)
         | 
| 209 209 | 
             
                  end
         | 
| 210 210 |  | 
| 211 | 
            -
                  it "complains if called with other arg" do
         | 
| 211 | 
            +
                  it "complains if called with other arg", :github_issue => [123,147] do
         | 
| 212 212 | 
             
                    lambda do
         | 
| 213 213 | 
             
                      @stub.foo("other")
         | 
| 214 | 
            -
                    end.should raise_error(/received :foo with unexpected arguments/)
         | 
| 214 | 
            +
                    end.should raise_error(/received :foo with unexpected arguments.*Please stub a default value/m)
         | 
| 215 215 | 
             
                  end
         | 
| 216 216 |  | 
| 217 217 | 
             
                  it "does not complain if also mocked w/ different args" do
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -1,32 +1,3 @@ | |
| 1 | 
            -
            require 'rspec/core'
         | 
| 2 | 
            -
            require 'rspec/mocks'
         | 
| 3 | 
            -
            require 'rspec/expectations'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            module Macros
         | 
| 6 | 
            -
              def treats_method_missing_as_private(options = {:noop => true, :subject => nil})
         | 
| 7 | 
            -
                it "has method_missing as private" do
         | 
| 8 | 
            -
                  self.class.describes.private_instance_methods.should include_method(:method_missing)
         | 
| 9 | 
            -
                end
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                it "does not respond_to? method_missing (because it's private)" do
         | 
| 12 | 
            -
                  formatter = options[:subject] || described_class.new({ }, StringIO.new)
         | 
| 13 | 
            -
                  formatter.should_not respond_to(:method_missing)
         | 
| 14 | 
            -
                end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                if options[:noop]
         | 
| 17 | 
            -
                  it "should respond_to? all messages" do
         | 
| 18 | 
            -
                    formatter = described_class.new({ }, StringIO.new)
         | 
| 19 | 
            -
                    formatter.should respond_to(:just_about_anything)
         | 
| 20 | 
            -
                  end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                  it "should respond_to? anything, when given the private flag" do
         | 
| 23 | 
            -
                    formatter = described_class.new({ }, StringIO.new)
         | 
| 24 | 
            -
                    formatter.respond_to?(:method_missing, true).should be_true
         | 
| 25 | 
            -
                  end
         | 
| 26 | 
            -
                end
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
            end
         | 
| 29 | 
            -
             | 
| 30 1 | 
             
            RSpec::Matchers.define :include_method do |expected|
         | 
| 31 2 | 
             
              match do |actual|
         | 
| 32 3 | 
             
                actual.map { |m| m.to_s }.include?(expected.to_s)
         | 
| @@ -37,19 +8,8 @@ RSpec.configure do |config| | |
| 37 8 | 
             
              config.mock_with :rspec
         | 
| 38 9 | 
             
              config.color_enabled = true
         | 
| 39 10 | 
             
              config.order = :random
         | 
| 40 | 
            -
              config.extend(Macros)
         | 
| 41 11 | 
             
              config.include(RSpec::Mocks::Methods)
         | 
| 42 12 | 
             
              config.run_all_when_everything_filtered = true
         | 
| 43 13 | 
             
              config.treat_symbols_as_metadata_keys_with_true_values = true
         | 
| 44 14 | 
             
              config.filter_run_including :focus
         | 
| 45 | 
            -
              config.filter_run_excluding :ruby => lambda {|version|
         | 
| 46 | 
            -
                case version.to_s
         | 
| 47 | 
            -
                when "!jruby"
         | 
| 48 | 
            -
                  RUBY_ENGINE != "jruby"
         | 
| 49 | 
            -
                when /^> (.*)/
         | 
| 50 | 
            -
                  !(RUBY_VERSION.to_s > $1)
         | 
| 51 | 
            -
                else
         | 
| 52 | 
            -
                  !(RUBY_VERSION.to_s =~ /^#{version.to_s}/)
         | 
| 53 | 
            -
                end
         | 
| 54 | 
            -
              }
         | 
| 55 15 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rspec-mocks
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2. | 
| 4 | 
            +
              version: 2.11.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2012- | 
| 13 | 
            +
            date: 2012-07-07 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: rake
         | 
| @@ -69,9 +69,12 @@ files: | |
| 69 69 | 
             
            - lib/rspec/mocks.rb
         | 
| 70 70 | 
             
            - lib/rspec/mocks/any_instance.rb
         | 
| 71 71 | 
             
            - lib/rspec/mocks/any_instance/chain.rb
         | 
| 72 | 
            +
            - lib/rspec/mocks/any_instance/expectation_chain.rb
         | 
| 72 73 | 
             
            - lib/rspec/mocks/any_instance/message_chains.rb
         | 
| 73 74 | 
             
            - lib/rspec/mocks/any_instance/recorder.rb
         | 
| 74 | 
            -
            - lib/rspec/mocks/ | 
| 75 | 
            +
            - lib/rspec/mocks/any_instance/stub_chain.rb
         | 
| 76 | 
            +
            - lib/rspec/mocks/any_instance/stub_chain_chain.rb
         | 
| 77 | 
            +
            - lib/rspec/mocks/argument_list_matcher.rb
         | 
| 75 78 | 
             
            - lib/rspec/mocks/argument_matchers.rb
         | 
| 76 79 | 
             
            - lib/rspec/mocks/error_generator.rb
         | 
| 77 80 | 
             
            - lib/rspec/mocks/errors.rb
         | 
| @@ -89,6 +92,7 @@ files: | |
| 89 92 | 
             
            - lib/rspec/mocks/serialization.rb
         | 
| 90 93 | 
             
            - lib/rspec/mocks/space.rb
         | 
| 91 94 | 
             
            - lib/rspec/mocks/standalone.rb
         | 
| 95 | 
            +
            - lib/rspec/mocks/stub_const.rb
         | 
| 92 96 | 
             
            - lib/rspec/mocks/test_double.rb
         | 
| 93 97 | 
             
            - lib/rspec/mocks/version.rb
         | 
| 94 98 | 
             
            - lib/spec/mocks.rb
         | 
| @@ -120,6 +124,9 @@ files: | |
| 120 124 | 
             
            - features/outside_rspec/configuration.feature
         | 
| 121 125 | 
             
            - features/outside_rspec/standalone.feature
         | 
| 122 126 | 
             
            - features/step_definitions/additional_cli_steps.rb
         | 
| 127 | 
            +
            - features/stubbing_constants/README.md
         | 
| 128 | 
            +
            - features/stubbing_constants/stub_defined_constant.feature
         | 
| 129 | 
            +
            - features/stubbing_constants/stub_undefined_constant.feature
         | 
| 123 130 | 
             
            - features/support/env.rb
         | 
| 124 131 | 
             
            - spec/rspec/mocks/and_yield_spec.rb
         | 
| 125 132 | 
             
            - spec/rspec/mocks/any_instance/message_chains_spec.rb
         | 
| @@ -158,6 +165,7 @@ files: | |
| 158 165 | 
             
            - spec/rspec/mocks/serialization_spec.rb
         | 
| 159 166 | 
             
            - spec/rspec/mocks/stash_spec.rb
         | 
| 160 167 | 
             
            - spec/rspec/mocks/stub_chain_spec.rb
         | 
| 168 | 
            +
            - spec/rspec/mocks/stub_const_spec.rb
         | 
| 161 169 | 
             
            - spec/rspec/mocks/stub_implementation_spec.rb
         | 
| 162 170 | 
             
            - spec/rspec/mocks/stub_spec.rb
         | 
| 163 171 | 
             
            - spec/rspec/mocks/stubbed_message_expectations_spec.rb
         | 
| @@ -182,7 +190,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 182 190 | 
             
                  version: '0'
         | 
| 183 191 | 
             
                  segments:
         | 
| 184 192 | 
             
                  - 0
         | 
| 185 | 
            -
                  hash:  | 
| 193 | 
            +
                  hash: 1632544807063438503
         | 
| 186 194 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 187 195 | 
             
              none: false
         | 
| 188 196 | 
             
              requirements:
         | 
| @@ -191,13 +199,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 191 199 | 
             
                  version: '0'
         | 
| 192 200 | 
             
                  segments:
         | 
| 193 201 | 
             
                  - 0
         | 
| 194 | 
            -
                  hash:  | 
| 202 | 
            +
                  hash: 1632544807063438503
         | 
| 195 203 | 
             
            requirements: []
         | 
| 196 204 | 
             
            rubyforge_project: rspec
         | 
| 197 205 | 
             
            rubygems_version: 1.8.24
         | 
| 198 206 | 
             
            signing_key: 
         | 
| 199 207 | 
             
            specification_version: 3
         | 
| 200 | 
            -
            summary: rspec-mocks-2. | 
| 208 | 
            +
            summary: rspec-mocks-2.11.0
         | 
| 201 209 | 
             
            test_files:
         | 
| 202 210 | 
             
            - features/README.md
         | 
| 203 211 | 
             
            - features/Scope.md
         | 
| @@ -222,6 +230,9 @@ test_files: | |
| 222 230 | 
             
            - features/outside_rspec/configuration.feature
         | 
| 223 231 | 
             
            - features/outside_rspec/standalone.feature
         | 
| 224 232 | 
             
            - features/step_definitions/additional_cli_steps.rb
         | 
| 233 | 
            +
            - features/stubbing_constants/README.md
         | 
| 234 | 
            +
            - features/stubbing_constants/stub_defined_constant.feature
         | 
| 235 | 
            +
            - features/stubbing_constants/stub_undefined_constant.feature
         | 
| 225 236 | 
             
            - features/support/env.rb
         | 
| 226 237 | 
             
            - spec/rspec/mocks/and_yield_spec.rb
         | 
| 227 238 | 
             
            - spec/rspec/mocks/any_instance/message_chains_spec.rb
         | 
| @@ -260,6 +271,7 @@ test_files: | |
| 260 271 | 
             
            - spec/rspec/mocks/serialization_spec.rb
         | 
| 261 272 | 
             
            - spec/rspec/mocks/stash_spec.rb
         | 
| 262 273 | 
             
            - spec/rspec/mocks/stub_chain_spec.rb
         | 
| 274 | 
            +
            - spec/rspec/mocks/stub_const_spec.rb
         | 
| 263 275 | 
             
            - spec/rspec/mocks/stub_implementation_spec.rb
         | 
| 264 276 | 
             
            - spec/rspec/mocks/stub_spec.rb
         | 
| 265 277 | 
             
            - spec/rspec/mocks/stubbed_message_expectations_spec.rb
         | 
| @@ -1,52 +0,0 @@ | |
| 1 | 
            -
            module RSpec
         | 
| 2 | 
            -
              module Mocks
         | 
| 3 | 
            -
                # @api private
         | 
| 4 | 
            -
                class ArgumentExpectation
         | 
| 5 | 
            -
                  attr_reader :args
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                  def initialize(*args, &block)
         | 
| 8 | 
            -
                    @args = args
         | 
| 9 | 
            -
                    @block = args.empty? ? block : nil
         | 
| 10 | 
            -
                    @match_any_args = false
         | 
| 11 | 
            -
                    @matchers = nil
         | 
| 12 | 
            -
             | 
| 13 | 
            -
                    case args.first
         | 
| 14 | 
            -
                    when ArgumentMatchers::AnyArgsMatcher
         | 
| 15 | 
            -
                      @match_any_args = true
         | 
| 16 | 
            -
                    when ArgumentMatchers::NoArgsMatcher
         | 
| 17 | 
            -
                      @matchers = []
         | 
| 18 | 
            -
                    else
         | 
| 19 | 
            -
                      @matchers = args.collect {|arg| matcher_for(arg)}
         | 
| 20 | 
            -
                    end
         | 
| 21 | 
            -
                  end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                  def matcher_for(arg)
         | 
| 24 | 
            -
                    return ArgumentMatchers::MatcherMatcher.new(arg) if is_matcher?(arg)
         | 
| 25 | 
            -
                    return ArgumentMatchers::RegexpMatcher.new(arg)  if arg.is_a?(Regexp)
         | 
| 26 | 
            -
                    return ArgumentMatchers::EqualityProxy.new(arg)
         | 
| 27 | 
            -
                  end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                  def is_matcher?(obj)
         | 
| 30 | 
            -
                    !obj.null_object? & obj.respond_to?(:matches?) & [:failure_message_for_should, :failure_message].any? { |m| obj.respond_to?(m) }
         | 
| 31 | 
            -
                  end
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                  def args_match?(*args)
         | 
| 34 | 
            -
                    match_any_args? || block_passes?(*args) || matchers_match?(*args)
         | 
| 35 | 
            -
                  end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                  private
         | 
| 38 | 
            -
             | 
| 39 | 
            -
                  def block_passes?(*args)
         | 
| 40 | 
            -
                    @block.call(*args) if @block
         | 
| 41 | 
            -
                  end
         | 
| 42 | 
            -
             | 
| 43 | 
            -
                  def matchers_match?(*args)
         | 
| 44 | 
            -
                    @matchers == args
         | 
| 45 | 
            -
                  end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                  def match_any_args?
         | 
| 48 | 
            -
                    @match_any_args
         | 
| 49 | 
            -
                  end
         | 
| 50 | 
            -
                end
         | 
| 51 | 
            -
              end
         | 
| 52 | 
            -
            end
         |