rspec-expect_it 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 51ec398861a336d50321dab80df562099db054be
4
- data.tar.gz: 4b84547c0eb3cf94a52264a854f7b60dff291b0c
3
+ metadata.gz: c0aa79562e13f859d4812639821f2e31652dc826
4
+ data.tar.gz: 634f4d65356c1068afdd3967839433380f05bfc9
5
5
  SHA512:
6
- metadata.gz: 615686cff1d8f349b6e15dca8bc139a8582ed7a0849eb576a146bc2bf580f63d16e84efbea8450206aed20513333346390540044572788114bc6cd101025a3dc
7
- data.tar.gz: c0a801aafc942040c0b7aa979e85cb1adebb84e837af4199f7fcd9a7f612c53695df351b76c30c3ce55a264484bcf16b59f27a8d084090b16749823b0f8037f6
6
+ metadata.gz: 2cf5c066d0d079cbbd9d5332fcfd765e235b007066a85a92074e6277f94553431c0c3978f427761015a402ed7b2748a1f905c22a0f45b1d4b6ef147f2872fcef
7
+ data.tar.gz: 159feba7f88dbd388a0fced4692acc4ef4b4e9c188881f06292bab07440c79701ceea11cb48690d03850c0ab86320462a5356e98f8dde8176d0699f3ae301b65
data/.rspec CHANGED
@@ -1,2 +1,2 @@
1
1
  --color
2
- --format progress
2
+ --format Fuubar
@@ -1 +1 @@
1
- ruby-2.0.0-p353
1
+ ruby-2.1.0
@@ -4,4 +4,5 @@ rvm:
4
4
  - 1.9.3
5
5
  - 2.0.0
6
6
  - 2.1.0
7
+ bundler_args: --without tools
7
8
  script: rspec
data/Gemfile CHANGED
@@ -1,4 +1,9 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in rspec-expect_it.gemspec
4
3
  gemspec
4
+
5
+ group :tools do
6
+ gem "guard"
7
+ gem "guard-rspec"
8
+ gem "byebug"
9
+ end
@@ -0,0 +1,5 @@
1
+ guard :rspec do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
data/README.md CHANGED
@@ -1,8 +1,11 @@
1
1
  # RSpec::ExpectIt
2
2
 
3
- [![Build Status](https://travis-ci.org/thomasfedb/rspec-expect_it.png?branch=master)](https://travis-ci.org/thomasfedb/rspec-expect_it) [![Gem Version](https://badge.fury.io/rb/rspec-expect_it.png)](http://badge.fury.io/rb/rspec-expect_it)
3
+ [![Build Status](https://travis-ci.org/thomasfedb/rspec-expect_it.png?branch=master)](https://travis-ci.org/thomasfedb/rspec-expect_it)
4
+ [![Gem Version](https://badge.fury.io/rb/rspec-expect_it.png)](http://badge.fury.io/rb/rspec-expect_it)
5
+ [![Code Climate](https://codeclimate.com/github/thomasfedb/rspec-expect_it.png)](https://codeclimate.com/github/thomasfedb/rspec-expect_it)
4
6
 
5
- Makes writing nice RSpec tests a little easier by providing expect_it helpers.
7
+ Makes writing nice RSpec tests a little easier by providing `expect_it` helpers.
8
+ These helpers are equivalent to `expect(subject)` and also provide useful variations.
6
9
 
7
10
  Compatible with Ruby 1.9.2 and greater.
8
11
 
@@ -63,7 +66,6 @@ specify { expect_it{}.to change{@value}.by(1) }
63
66
  ### expect_its
64
67
 
65
68
  Calling `expect_its(:method)` is equivalent to `expect(subject.method)`.
66
- There is no `_safe` version of this helper.
67
69
 
68
70
  ```ruby
69
71
  subject { "foobar" }
@@ -74,7 +76,6 @@ specify { expect_its(:length).to eq 6 }
74
76
  ### expect_its!
75
77
 
76
78
  If you want eager evaluation of the subject and method call, use `expect_its!`.
77
- There is no `_safe` version of this helper.
78
79
 
79
80
  ```ruby
80
81
  subject { @value += 1 }
@@ -82,32 +83,11 @@ subject { @value += 1 }
82
83
  specify { expect_its!(:to_s).to eq @value.to_s }
83
84
  ```
84
85
 
85
- ### expect_it_safe
86
-
87
- The `expect_it_safe` helper is the same as `expect_it`, except that it will
88
- swallow any exceptions and return `nil`.
89
-
90
- ```ruby
91
- subject { raise Exception }
92
-
93
- specify { expect_it_safe.to eq nil }
94
- ```
95
-
96
- ### expect_it_safe!
97
-
98
- The `expect_it_safe!` helper is the same as `expect_it!`, except that it will
99
- swallow any exceptions and return `nil`.
100
-
101
- ```ruby
102
- subject { raise Exception }
103
-
104
- specify { expect_it_safe!.to eq nil }
105
- ```
106
-
107
86
  ### expect_it_safe{}
108
87
 
109
88
  The `expect_it_safe{}` helper is the same as `expect_it{}`, except that it will
110
- swallow any exceptions and return `nil`.
89
+ swallow any exceptions. This can be helpful when checking that error scenarios
90
+ do not lead to changes that should only occur when the system is successful.
111
91
 
112
92
  ```ruby
113
93
  subject { raise Exception; @value = 12 }
@@ -122,4 +102,4 @@ specify { expect_it_safe{}.to_not change{@value} }
122
102
  3. Add your feature and specs.
123
103
  4. Commit your changes (`git commit -am 'Add some feature'`)
124
104
  5. Push to the branch (`git push origin my-new-feature`)
125
- 6. Create new Pull Request
105
+ 6. Create new Pull Request
@@ -2,6 +2,8 @@ require "rspec"
2
2
 
3
3
  require "rspec/expect_it/version"
4
4
  require "rspec/expect_it/helpers"
5
+ require "rspec/expect_it/expectation_targets/expect_it"
6
+ require "rspec/expect_it/expectation_targets/expect_its"
5
7
 
6
8
  RSpec.configure do |config|
7
9
  config.include RSpec::ExpectIt::Helpers
@@ -0,0 +1,28 @@
1
+ module RSpec
2
+ module ExpectIt
3
+ module ExpectationTargets
4
+ class ExpectIt
5
+ attr_accessor :context, :subject
6
+
7
+ def initialize(context, subject = nil)
8
+ self.context = context
9
+ self.subject = subject
10
+ end
11
+
12
+ def to(matcher)
13
+ context.expect(get_subject).to(matcher)
14
+ end
15
+
16
+ def to_not(matcher)
17
+ context.expect(get_subject).to_not(matcher)
18
+ end
19
+
20
+ private
21
+
22
+ def get_subject
23
+ subject || context.subject
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,20 @@
1
+ module RSpec
2
+ module ExpectIt
3
+ module ExpectationTargets
4
+ class ExpectIts < ExpectIt
5
+ attr_accessor :method
6
+
7
+ def initialize(context, method)
8
+ super(context)
9
+ self.method = method
10
+ end
11
+
12
+ private
13
+
14
+ def get_subject
15
+ context.subject.send(method)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -3,9 +3,9 @@ module RSpec
3
3
  module Helpers
4
4
  def expect_it
5
5
  if block_given?
6
- ExpectItExpectationTarget.new(self, lambda { self.subject })
6
+ RSpec::ExpectIt::ExpectationTargets::ExpectIt.new(self, lambda { self.subject })
7
7
  else
8
- ExpectItExpectationTarget.new(self)
8
+ RSpec::ExpectIt::ExpectationTargets::ExpectIt.new(self)
9
9
  end
10
10
  end
11
11
 
@@ -14,7 +14,7 @@ module RSpec
14
14
  end
15
15
 
16
16
  def expect_its(method)
17
- ExpectItsExpectationTarget.new(self, method)
17
+ RSpec::ExpectIt::ExpectationTargets::ExpectIts.new(self, method)
18
18
  end
19
19
 
20
20
  def expect_its!(method)
@@ -30,69 +30,9 @@ module RSpec
30
30
  nil
31
31
  end
32
32
  end
33
- ExpectItExpectationTarget.new(self, safe_lambda)
33
+ RSpec::ExpectIt::ExpectationTargets::ExpectIt.new(self, safe_lambda)
34
34
  else
35
- ExpectItSafeExpectationTarget.new(self)
36
- end
37
- end
38
-
39
- def expect_it_safe!
40
- result = begin
41
- self.subject
42
- rescue Exception
43
- nil
44
- end
45
-
46
- expect(result)
47
- end
48
-
49
- class ExpectItExpectationTarget
50
- attr_accessor :context, :subject
51
-
52
- def initialize(context, subject = nil)
53
- self.context = context
54
- self.subject = subject
55
- end
56
-
57
- def to(matcher)
58
- context.expect(get_subject).to(matcher)
59
- end
60
-
61
- def to_not(matcher)
62
- context.expect(get_subject).to_not(matcher)
63
- end
64
-
65
- private
66
-
67
- def get_subject
68
- subject || context.subject
69
- end
70
- end
71
-
72
- class ExpectItSafeExpectationTarget < ExpectItExpectationTarget
73
- private
74
-
75
- def get_subject
76
- begin
77
- subject || context.subject
78
- rescue Exception
79
- nil
80
- end
81
- end
82
- end
83
-
84
- class ExpectItsExpectationTarget < ExpectItExpectationTarget
85
- attr_accessor :method
86
-
87
- def initialize(context, method)
88
- super(context)
89
- self.method = method
90
- end
91
-
92
- private
93
-
94
- def get_subject
95
- context.subject.send(method)
35
+ raise ArgumentError, "method must be called as expect_it_safe{}"
96
36
  end
97
37
  end
98
38
  end
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
2
  module ExpectIt
3
- VERSION = "1.1.0"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
@@ -22,5 +22,5 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.3"
24
24
  spec.add_development_dependency "rake"
25
- spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "fuubar"
26
26
  end
@@ -0,0 +1,42 @@
1
+ require "spec_helper"
2
+
3
+ describe RSpec::ExpectIt::ExpectationTargets::ExpectIt do
4
+ let(:context) do
5
+ double("context").tap do |context|
6
+ context.stub(:expect) {|arg| expect(arg) }
7
+ context.stub(:subject) { context_subject }
8
+ end
9
+ end
10
+
11
+ let(:passed_subject) { nil }
12
+
13
+ subject { RSpec::ExpectIt::ExpectationTargets::ExpectIt.new(context, passed_subject) }
14
+
15
+ describe "#to" do
16
+ context "when the subject is passed" do
17
+ let(:passed_subject) { Object.new }
18
+
19
+ specify { subject.to eq passed_subject }
20
+ end
21
+
22
+ context "when the subject is not passed" do
23
+ let(:context_subject) { Object.new }
24
+
25
+ specify { subject.to eq context_subject }
26
+ end
27
+ end
28
+
29
+ describe "#not_to" do
30
+ context "when the subject is passed" do
31
+ let(:passed_subject) { Object.new }
32
+
33
+ specify { expect{ subject.to_not eq passed_subject }.to raise_error(RSpec::Expectations::ExpectationNotMetError) }
34
+ end
35
+
36
+ context "when the subject is not passed" do
37
+ let(:context_subject) { Object.new }
38
+
39
+ specify { expect{ subject.to_not eq context_subject }.to raise_error(RSpec::Expectations::ExpectationNotMetError) }
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,29 @@
1
+ require "spec_helper"
2
+
3
+ describe RSpec::ExpectIt::ExpectationTargets::ExpectIts do
4
+ let(:context) do
5
+ double("context").tap do |context|
6
+ context.stub(:expect) {|arg| expect(arg) }
7
+ context.stub(:subject) { context_subject }
8
+ end
9
+ end
10
+
11
+ let(:context_subject) do
12
+ double("subject").tap do |subject|
13
+ subject.stub(method) { method_return_value }
14
+ end
15
+ end
16
+
17
+ let(:method) { :a_method }
18
+ let(:method_return_value) { Object.new }
19
+
20
+ subject { RSpec::ExpectIt::ExpectationTargets::ExpectIts.new(context, method) }
21
+
22
+ describe "#to" do
23
+ specify { subject.to eq method_return_value }
24
+ end
25
+
26
+ describe "#not_to" do
27
+ specify { expect{ subject.to_not eq method_return_value }.to raise_error(RSpec::Expectations::ExpectationNotMetError) }
28
+ end
29
+ end
@@ -111,46 +111,8 @@ describe RSpec::ExpectIt::Helpers do
111
111
  end
112
112
 
113
113
  describe "expect_it_safe" do
114
- describe "equalivalence" do
115
- subject { Object.new }
116
-
117
- specify { expect_it_safe.to eq subject }
118
- end
119
-
120
- describe "lazy evaluation" do
121
- before { @value = 0 }
122
-
123
- subject { @value = 1 }
124
-
125
- specify { expect_it_safe.to eq (@value + 1) }
126
- end
127
-
128
- describe "saftey" do
129
- subject { raise Exception }
130
-
131
- specify { expect_it_safe.to eq nil }
132
- end
133
- end
134
-
135
- describe "expect_it_safe!" do
136
- describe "equalivalence" do
137
- subject { Object.new }
138
-
139
- specify { expect_it_safe!.to eq subject }
140
- end
141
-
142
- describe "unlazy evaluation" do
143
- before { @value = 0 }
144
-
145
- subject { @value = 1 }
146
-
147
- specify { expect_it_safe!.to eq @value }
148
- end
149
-
150
- describe "saftey" do
151
- subject { raise Exception }
152
-
153
- specify { expect_it_safe!.to eq nil }
114
+ describe "not avaliable" do
115
+ specify { expect{ expect_it_safe }.to raise_error(ArgumentError) }
154
116
  end
155
117
  end
156
118
 
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-expect_it
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Drake-Brockman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-28 00:00:00.000000000 Z
11
+ date: 2014-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 2.14.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.14.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: fuubar
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: Provides expect_it helpers for RSpec.
@@ -73,19 +73,24 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - .gitignore
77
- - .rspec
78
- - .ruby-gemset
79
- - .ruby-version
80
- - .travis.yml
76
+ - ".gitignore"
77
+ - ".rspec"
78
+ - ".ruby-gemset"
79
+ - ".ruby-version"
80
+ - ".travis.yml"
81
81
  - Gemfile
82
+ - Guardfile
82
83
  - LICENSE
83
84
  - README.md
84
85
  - Rakefile
85
86
  - lib/rspec/expect_it.rb
87
+ - lib/rspec/expect_it/expectation_targets/expect_it.rb
88
+ - lib/rspec/expect_it/expectation_targets/expect_its.rb
86
89
  - lib/rspec/expect_it/helpers.rb
87
90
  - lib/rspec/expect_it/version.rb
88
91
  - rspec-expect_it.gemspec
92
+ - spec/rspec/expect_it/expectation_targets/expect_it_spec.rb
93
+ - spec/rspec/expect_it/expectation_targets/expect_its_spec.rb
89
94
  - spec/rspec/expect_it/helpers_spec.rb
90
95
  - spec/spec_helper.rb
91
96
  homepage: ''
@@ -98,20 +103,22 @@ require_paths:
98
103
  - lib
99
104
  required_ruby_version: !ruby/object:Gem::Requirement
100
105
  requirements:
101
- - - '>='
106
+ - - ">="
102
107
  - !ruby/object:Gem::Version
103
108
  version: '0'
104
109
  required_rubygems_version: !ruby/object:Gem::Requirement
105
110
  requirements:
106
- - - '>='
111
+ - - ">="
107
112
  - !ruby/object:Gem::Version
108
113
  version: '0'
109
114
  requirements: []
110
115
  rubyforge_project:
111
- rubygems_version: 2.1.11
116
+ rubygems_version: 2.2.0
112
117
  signing_key:
113
118
  specification_version: 4
114
119
  summary: Provides a expect_it helpers for RSpec.
115
120
  test_files:
121
+ - spec/rspec/expect_it/expectation_targets/expect_it_spec.rb
122
+ - spec/rspec/expect_it/expectation_targets/expect_its_spec.rb
116
123
  - spec/rspec/expect_it/helpers_spec.rb
117
124
  - spec/spec_helper.rb