rspec-expectations 2.5.0 → 2.6.0.rc2

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.
Files changed (48) hide show
  1. data/.travis.yml +7 -0
  2. data/Gemfile +13 -11
  3. data/README.md +2 -0
  4. data/Rakefile +28 -17
  5. data/features/Changelog.md +16 -0
  6. data/features/built_in_matchers/be.feature +4 -4
  7. data/features/built_in_matchers/be_within.feature +1 -1
  8. data/features/built_in_matchers/equality.feature +5 -5
  9. data/features/built_in_matchers/exist.feature +1 -1
  10. data/features/built_in_matchers/expect_change.feature +2 -2
  11. data/features/built_in_matchers/expect_error.feature +7 -7
  12. data/features/built_in_matchers/have.feature +2 -2
  13. data/features/built_in_matchers/include.feature +3 -3
  14. data/features/built_in_matchers/match.feature +2 -2
  15. data/features/built_in_matchers/operators.feature +3 -3
  16. data/features/built_in_matchers/predicates.feature +5 -5
  17. data/features/built_in_matchers/respond_to.feature +2 -2
  18. data/features/built_in_matchers/satisfy.feature +1 -1
  19. data/features/built_in_matchers/throw_symbol.feature +3 -3
  20. data/features/built_in_matchers/types.feature +2 -2
  21. data/features/custom_matchers/access_running_example.feature +2 -2
  22. data/features/custom_matchers/define_diffable_matcher.feature +1 -1
  23. data/features/custom_matchers/define_matcher.feature +40 -11
  24. data/features/custom_matchers/define_matcher_outside_rspec.feature +1 -1
  25. data/features/custom_matchers/define_matcher_with_fluent_interface.feature +1 -1
  26. data/features/customized_message.feature +1 -1
  27. data/features/diffing.feature +4 -4
  28. data/features/implicit_docstrings.feature +2 -2
  29. data/features/step_definitions/additional_cli_steps.rb +2 -2
  30. data/features/support/env.rb +5 -1
  31. data/features/test_frameworks/test_unit.feature +1 -1
  32. data/lib/rspec/expectations/backward_compatibility.rb +22 -1
  33. data/lib/rspec/expectations/version.rb +1 -1
  34. data/lib/rspec/matchers.rb +10 -5
  35. data/lib/rspec/matchers/change.rb +47 -32
  36. data/lib/rspec/matchers/has.rb +15 -11
  37. data/lib/rspec/matchers/matcher.rb +4 -0
  38. data/spec/rspec/matchers/be_spec.rb +0 -4
  39. data/spec/rspec/matchers/change_spec.rb +84 -9
  40. data/spec/rspec/matchers/description_generation_spec.rb +41 -25
  41. data/spec/rspec/matchers/has_spec.rb +2 -2
  42. data/spec/rspec/matchers/have_spec.rb +21 -21
  43. data/spec/rspec/matchers/matcher_spec.rb +46 -0
  44. data/spec/rspec/matchers/matchers_spec.rb +3 -23
  45. data/spec/rspec/matchers/method_missing_spec.rb +23 -0
  46. data/spec/spec_helper.rb +2 -0
  47. metadata +23 -18
  48. data/spec/suite.rb +0 -1
@@ -1,10 +1,56 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  class UnexpectedError < StandardError; end
4
+ module MatcherHelperModule
5
+ def self.included(base)
6
+ base.module_eval do
7
+ def included_method; end
8
+ end
9
+ end
10
+
11
+ def self.extended(base)
12
+ base.instance_eval do
13
+ def extended_method; end
14
+ end
15
+ end
16
+
17
+ def greeting
18
+ "Hello, World"
19
+ end
20
+ end
4
21
 
5
22
  module RSpec
6
23
  module Matchers
7
24
  describe Matcher do
25
+ context "with an included module" do
26
+ let(:matcher) do
27
+ RSpec::Matchers::Matcher.new(:be_a_greeting) do
28
+ include MatcherHelperModule
29
+ match { |actual| actual == greeting }
30
+ end
31
+ end
32
+
33
+ it "has access to the module's methods" do
34
+ matcher.matches?("Hello, World")
35
+ end
36
+
37
+ it "runs the module's included hook" do
38
+ matcher.should respond_to(:included_method)
39
+ end
40
+
41
+ it "does not run the module's extended hook" do
42
+ matcher.should_not respond_to(:extended_method)
43
+ end
44
+
45
+ it 'allows multiple modules to be included at once' do
46
+ m = RSpec::Matchers::Matcher.new(:multiple_modules) do
47
+ include Enumerable, Comparable
48
+ end
49
+ m.should be_a(Enumerable)
50
+ m.should be_a(Comparable)
51
+ end
52
+ end
53
+
8
54
  context "without overrides" do
9
55
  before(:each) do
10
56
  @matcher = RSpec::Matchers::Matcher.new(:be_a_multiple_of, 3) do |multiple|
@@ -1,19 +1,5 @@
1
1
  require 'spec_helper'
2
2
 
3
- module Test
4
- module Unit
5
- class TestCase
6
- end
7
- end
8
- end
9
-
10
- module MiniTest
11
- module Unit
12
- class TestCase
13
- end
14
- end
15
- end
16
-
17
3
  module RSpec
18
4
  describe Matchers do
19
5
 
@@ -25,21 +11,15 @@ module RSpec
25
11
  end
26
12
 
27
13
  context "once required" do
28
-
29
- before(:all) do
30
- path = File.expand_path("../../../../#{path}", __FILE__)
31
- load File.join(path, 'lib/rspec/matchers.rb')
32
- end
33
-
34
14
  it "includes itself in Test::Unit::TestCase" do
35
- test_unit_case = Test::Unit::TestCase.new
15
+ test_unit_case = Test::Unit::TestCase.allocate
36
16
  sample_matchers.each do |sample_matcher|
37
17
  test_unit_case.should respond_to(sample_matcher)
38
18
  end
39
19
  end
40
20
 
41
- it "includes itself in MiniTest::Unit::TestCase" do
42
- minitest_case = MiniTest::Unit::TestCase.new
21
+ it "includes itself in MiniTest::Unit::TestCase", :if => defined?(MiniTest) do
22
+ minitest_case = MiniTest::Unit::TestCase.allocate
43
23
  sample_matchers.each do |sample_matcher|
44
24
  minitest_case.should respond_to(sample_matcher)
45
25
  end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ shared_examples_for "a well-behaved method_missing hook" do
4
+ it "raises a NoMethodError (and not SystemStackError) for an undefined method" do
5
+ expect { subject.some_undefined_method }.to raise_error(NoMethodError)
6
+ end
7
+ end
8
+
9
+ describe "RSpec::Matchers method_missing hook" do
10
+ subject { self }
11
+ it_behaves_like "a well-behaved method_missing hook"
12
+
13
+ context 'when invoked in a Test::Unit::TestCase' do
14
+ subject { Test::Unit::TestCase.allocate }
15
+ it_behaves_like "a well-behaved method_missing hook"
16
+ end
17
+
18
+ context 'when invoked in a MiniTest::Unit::TestCase', :if => defined?(MiniTest) do
19
+ subject { MiniTest::Unit::TestCase.allocate }
20
+ it_behaves_like "a well-behaved method_missing hook"
21
+ end
22
+ end
23
+
@@ -7,6 +7,8 @@ def add_to_load_path(path, prepend=false)
7
7
  end
8
8
  end
9
9
 
10
+ require 'test/unit'
11
+
10
12
  add_to_load_path("rspec-expectations", :prepend)
11
13
  add_to_load_path("rspec-core")
12
14
  add_to_load_path("rspec-mocks")
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-expectations
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
4
+ hash: 15424049
5
+ prerelease: 6
6
6
  segments:
7
7
  - 2
8
- - 5
8
+ - 6
9
9
  - 0
10
- version: 2.5.0
10
+ - rc
11
+ - 2
12
+ version: 2.6.0.rc2
11
13
  platform: ruby
12
14
  authors:
13
15
  - David Chelimsky
@@ -16,11 +18,14 @@ autorequire:
16
18
  bindir: bin
17
19
  cert_chain: []
18
20
 
19
- date: 2011-02-05 00:00:00 -06:00
21
+ date: 2011-04-18 00:00:00 -05:00
20
22
  default_executable:
21
23
  dependencies:
22
24
  - !ruby/object:Gem::Dependency
23
- requirement: &id001 !ruby/object:Gem::Requirement
25
+ prerelease: false
26
+ type: :runtime
27
+ name: diff-lcs
28
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
29
  none: false
25
30
  requirements:
26
31
  - - ~>
@@ -31,10 +36,7 @@ dependencies:
31
36
  - 1
32
37
  - 2
33
38
  version: 1.1.2
34
- type: :runtime
35
- name: diff-lcs
36
- prerelease: false
37
- version_requirements: *id001
39
+ requirement: *id001
38
40
  description: rspec expectations (should[_not] and matchers)
39
41
  email: dchelimsky@gmail.com;chad.humphries@gmail.com
40
42
  executables: []
@@ -46,6 +48,7 @@ extra_rdoc_files:
46
48
  files:
47
49
  - .document
48
50
  - .gitignore
51
+ - .travis.yml
49
52
  - Gemfile
50
53
  - Guardfile
51
54
  - License.txt
@@ -149,13 +152,13 @@ files:
149
152
  - spec/rspec/matchers/match_spec.rb
150
153
  - spec/rspec/matchers/matcher_spec.rb
151
154
  - spec/rspec/matchers/matchers_spec.rb
155
+ - spec/rspec/matchers/method_missing_spec.rb
152
156
  - spec/rspec/matchers/operator_matcher_spec.rb
153
157
  - spec/rspec/matchers/raise_error_spec.rb
154
158
  - spec/rspec/matchers/respond_to_spec.rb
155
159
  - spec/rspec/matchers/satisfy_spec.rb
156
160
  - spec/rspec/matchers/throw_symbol_spec.rb
157
161
  - spec/spec_helper.rb
158
- - spec/suite.rb
159
162
  - spec/support/classes.rb
160
163
  - spec/support/matchers.rb
161
164
  - spec/support/ruby_version.rb
@@ -181,19 +184,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
181
184
  required_rubygems_version: !ruby/object:Gem::Requirement
182
185
  none: false
183
186
  requirements:
184
- - - ">="
187
+ - - ">"
185
188
  - !ruby/object:Gem::Version
186
- hash: 3
189
+ hash: 25
187
190
  segments:
188
- - 0
189
- version: "0"
191
+ - 1
192
+ - 3
193
+ - 1
194
+ version: 1.3.1
190
195
  requirements: []
191
196
 
192
197
  rubyforge_project: rspec
193
- rubygems_version: 1.3.7
198
+ rubygems_version: 1.5.2
194
199
  signing_key:
195
200
  specification_version: 3
196
- summary: rspec-expectations-2.5.0
201
+ summary: rspec-expectations-2.6.0.rc2
197
202
  test_files:
198
203
  - features/Changelog.md
199
204
  - features/README.markdown
@@ -248,13 +253,13 @@ test_files:
248
253
  - spec/rspec/matchers/match_spec.rb
249
254
  - spec/rspec/matchers/matcher_spec.rb
250
255
  - spec/rspec/matchers/matchers_spec.rb
256
+ - spec/rspec/matchers/method_missing_spec.rb
251
257
  - spec/rspec/matchers/operator_matcher_spec.rb
252
258
  - spec/rspec/matchers/raise_error_spec.rb
253
259
  - spec/rspec/matchers/respond_to_spec.rb
254
260
  - spec/rspec/matchers/satisfy_spec.rb
255
261
  - spec/rspec/matchers/throw_symbol_spec.rb
256
262
  - spec/spec_helper.rb
257
- - spec/suite.rb
258
263
  - spec/support/classes.rb
259
264
  - spec/support/matchers.rb
260
265
  - spec/support/ruby_version.rb
@@ -1 +0,0 @@
1
- Dir["spec/**/*_spec.rb"].each {|f| require f}