rspec-its 1.0.0.pre → 1.0.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.
- checksums.yaml +4 -4
- data/.travis.yml +5 -2
- data/Changelog.md +22 -0
- data/Gemfile +13 -3
- data/README.md +4 -4
- data/features/its.feature +0 -37
- data/lib/rspec/its.rb +13 -0
- data/lib/rspec/its/version.rb +1 -1
- data/rspec-its.gemspec +2 -0
- data/spec/rspec/its_spec.rb +10 -1
- metadata +33 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e89242dc146a5c9573f8d63e6562cdfb2d737af
|
4
|
+
data.tar.gz: 633f5d342cec24bf1ccf5333aea83790450aaed8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 228935be4ec664600e892ad3db85744beb98d4838926ae799c8004a34477e0edb62a80f488a8b85addf19cc0863207907f94867f29d9afdda3fd5beb13072549
|
7
|
+
data.tar.gz: d3d25104450cdfd1d699d3737d1dfabf3481c2cbc31ae216d6926af99e5b16d199912f6720067d92036242e75ca2245fa28d79c237bfb9d03ed879a8e049be2a
|
data/.travis.yml
CHANGED
data/Changelog.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
### 1.0.0 / 2014-02-07
|
2
|
+
[full changelog](http://github.com/rspec/rspec-its/compare/v1.0.0.pre...master)
|
3
|
+
|
4
|
+
Breaking Changes:
|
5
|
+
|
6
|
+
|
7
|
+
Enhancements:
|
8
|
+
* Add `is_expected` support to match RSpec 3.0
|
9
|
+
|
10
|
+
Deprecations:
|
11
|
+
|
12
|
+
|
13
|
+
Bug Fixes:
|
14
|
+
* Report failures and backtrace from client perspective
|
15
|
+
|
16
|
+
|
17
|
+
### 1.0.0.pre / 2013-10-11
|
18
|
+
|
19
|
+
Features
|
20
|
+
|
21
|
+
* Initial extraction of `its()` functionality to separate gem
|
22
|
+
|
data/Gemfile
CHANGED
@@ -8,12 +8,22 @@ gemspec
|
|
8
8
|
if File.exist?(library_path)
|
9
9
|
gem lib, :path => library_path
|
10
10
|
else
|
11
|
-
gem lib, :git => "git://github.com/rspec/#{lib}.git"
|
11
|
+
gem lib, :git => "git://github.com/rspec/#{lib}.git",
|
12
|
+
:branch => ENV.fetch('BRANCH','master')
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
16
|
+
# only pull rspec-support from master
|
17
|
+
|
18
|
+
gem "rspec-support", :git => "git://github.com/rspec/rspec-support.git"
|
19
|
+
|
15
20
|
# test coverage
|
16
|
-
gem 'simplecov', :require => false
|
17
|
-
|
21
|
+
# gem 'simplecov', :require => false
|
22
|
+
|
23
|
+
gem 'coveralls', :require => false, :platform => :mri_20
|
18
24
|
|
19
25
|
eval File.read('Gemfile-custom') if File.exist?('Gemfile-custom')
|
26
|
+
|
27
|
+
platform :rbx do
|
28
|
+
gem 'rubysl'
|
29
|
+
end
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# RSpec::Its [](https://travis-ci.org/rspec/rspec-its)
|
2
2
|
|
3
3
|
RSpec::Its provides the `its` method as a short-hand to specify the expected value of an attribute.
|
4
4
|
|
@@ -20,7 +20,7 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
Use the `its` method to generate a nested example group with
|
22
22
|
a single example that specifies the expected value of an attribute of the
|
23
|
-
subject
|
23
|
+
subject using `should`, `should_not` or `is_expected`.
|
24
24
|
|
25
25
|
`its` accepts a symbol or a string, and a block representing the example.
|
26
26
|
|
@@ -30,12 +30,12 @@ subject. This can be used with an implicit or explicit subject.
|
|
30
30
|
You can use a string with dots to specify a nested attribute (i.e. an
|
31
31
|
attribute of the attribute of the subject).
|
32
32
|
|
33
|
-
its("phone_numbers.size") {
|
33
|
+
its("phone_numbers.size") { should_not eq(0) }
|
34
34
|
|
35
35
|
When the subject is a hash, you can pass in an array with a single key to
|
36
36
|
access the value at that key in the hash.
|
37
37
|
|
38
|
-
its([:key]) {
|
38
|
+
its([:key]) { is_expected.to eq(value) }
|
39
39
|
|
40
40
|
## Contributing
|
41
41
|
|
data/features/its.feature
CHANGED
@@ -1,42 +1,5 @@
|
|
1
1
|
Feature: attribute of subject
|
2
2
|
|
3
|
-
Use the `its` method as a short-hand to generate a nested example group with
|
4
|
-
a single example that specifies the expected value of an attribute of the
|
5
|
-
subject. This can be used with an implicit or explicit subject.
|
6
|
-
|
7
|
-
`its` accepts a symbol or a string, and a block representing the example.
|
8
|
-
|
9
|
-
its(:size) { should eq(1) }
|
10
|
-
its("length") { should eq(1) }
|
11
|
-
|
12
|
-
You can use a string with dots to specify a nested attribute (i.e. an
|
13
|
-
attribute of the attribute of the subject).
|
14
|
-
|
15
|
-
its("phone_numbers.size") { should eq(2) }
|
16
|
-
|
17
|
-
When the subject is a hash, you can pass in an array with a single key to
|
18
|
-
access the value at that key in the hash.
|
19
|
-
|
20
|
-
its([:key]) { should eq(value) }
|
21
|
-
|
22
|
-
Scenario: specify value of an attribute
|
23
|
-
Given a file named "example_spec.rb" with:
|
24
|
-
"""ruby
|
25
|
-
describe Array do
|
26
|
-
context "when first created" do
|
27
|
-
its(:size) { should eq(0) }
|
28
|
-
end
|
29
|
-
end
|
30
|
-
"""
|
31
|
-
When I run rspec with the documentation option
|
32
|
-
Then the output should contain:
|
33
|
-
"""
|
34
|
-
Array
|
35
|
-
when first created
|
36
|
-
size
|
37
|
-
should eq 0
|
38
|
-
"""
|
39
|
-
|
40
3
|
Scenario: specify value of a nested attribute
|
41
4
|
Given a file named "example_spec.rb" with:
|
42
5
|
"""ruby
|
data/lib/rspec/its.rb
CHANGED
@@ -58,6 +58,15 @@ module RSpec
|
|
58
58
|
# its(:count) { should eq(2) }
|
59
59
|
# end
|
60
60
|
#
|
61
|
+
# With an implicit subject, `is_expected` can be used as an alternative
|
62
|
+
# to `should` (e.g. for one-liner use)
|
63
|
+
#
|
64
|
+
# @example
|
65
|
+
#
|
66
|
+
# describe Array do
|
67
|
+
# its(:size) { is_expected.to eq(0) }
|
68
|
+
# end
|
69
|
+
#
|
61
70
|
# Note that this method does not modify `subject` in any way, so if you
|
62
71
|
# refer to `subject` in `let` or `before` blocks, you're still
|
63
72
|
# referring to the outer subject.
|
@@ -82,6 +91,10 @@ module RSpec
|
|
82
91
|
end
|
83
92
|
end
|
84
93
|
|
94
|
+
def is_expected
|
95
|
+
expect(__its_subject)
|
96
|
+
end
|
97
|
+
|
85
98
|
def should(matcher=nil, message=nil)
|
86
99
|
RSpec::Expectations::PositiveExpectationHandler.handle_matcher(__its_subject, matcher, message)
|
87
100
|
end
|
data/lib/rspec/its/version.rb
CHANGED
data/rspec-its.gemspec
CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.add_runtime_dependency 'rspec-core', '>= 2.99.0.beta1'
|
22
|
+
spec.add_runtime_dependency 'rspec-expectations', '>= 2.99.0.beta1'
|
21
23
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
24
|
spec.add_development_dependency 'rake', '~> 10.1.0'
|
23
25
|
spec.add_development_dependency 'cucumber', '~> 1.3.8'
|
data/spec/rspec/its_spec.rb
CHANGED
@@ -41,6 +41,15 @@ module RSpec
|
|
41
41
|
its("name") { should eq("John") }
|
42
42
|
its("name.size") { should eq(4) }
|
43
43
|
its("name.size.class") { should eq(Fixnum) }
|
44
|
+
|
45
|
+
context "using should_not" do
|
46
|
+
its("name") { should_not eq("Paul") }
|
47
|
+
end
|
48
|
+
|
49
|
+
context "using is_expected" do
|
50
|
+
its("name") { is_expected.to eq("John") }
|
51
|
+
end
|
52
|
+
|
44
53
|
end
|
45
54
|
|
46
55
|
context "when it responds to #[]" do
|
@@ -61,7 +70,7 @@ module RSpec
|
|
61
70
|
its(['a']) { should eq("String: a") }
|
62
71
|
its([:b, 'c', 4]) { should eq("Symbol: b; String: c; Fixnum: 4") }
|
63
72
|
its(:name) { should eq("George") }
|
64
|
-
context "when referring to an attribute
|
73
|
+
context "when referring to an attribute that doesn't exist" do
|
65
74
|
context "it raises an error" do
|
66
75
|
its(:age) do
|
67
76
|
expect do
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-its
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Alfvin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.99.0.beta1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.99.0.beta1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec-expectations
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.99.0.beta1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.99.0.beta1
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: bundler
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -76,6 +104,7 @@ files:
|
|
76
104
|
- .gitignore
|
77
105
|
- .rspec
|
78
106
|
- .travis.yml
|
107
|
+
- Changelog.md
|
79
108
|
- Gemfile
|
80
109
|
- LICENSE.txt
|
81
110
|
- README.md
|
@@ -105,9 +134,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
134
|
version: '0'
|
106
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
136
|
requirements:
|
108
|
-
- - '
|
137
|
+
- - '>='
|
109
138
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
139
|
+
version: '0'
|
111
140
|
requirements: []
|
112
141
|
rubyforge_project:
|
113
142
|
rubygems_version: 2.0.3
|