rspec-steps 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/README +4 -0
- data/lib/rspec-steps/builder.rb +3 -0
- data/lib/rspec-steps/describer.rb +13 -2
- data/lib/rspec-steps/dsl.rb +1 -1
- data/lib/rspec-steps/modules.rb +23 -0
- data/spec/example_group_spec.rb +23 -0
- metadata +29 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1ee490834a493e6f722e519813ffc94f2a7ff3a
|
4
|
+
data.tar.gz: 1b50c820064433d490b8c432831c59fe78c519c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf075795e1fa4b62627665c5274fdc85a278b2f4a8d9207b276fdb0812df796e185325d6068086f57b0043f8d2a03f5dca399cea235d461908364b5632a36710
|
7
|
+
data.tar.gz: 22b96a1f27fc89e821858790e2903e8ef5db388af8f4ed3e0009aefe194577512c0c0c4006e1f1b956a5ddbeb444c58d6a4d54ebf356c68b824e8224030c5492
|
data/doc/README
CHANGED
@@ -89,6 +89,10 @@ there's a :step hook), this shift *no longer* applies to config.before _et al_
|
|
89
89
|
-- you'll need to use config.before :each to run around each step. This is the
|
90
90
|
primary change to the Steps interface that called for a major version bump.
|
91
91
|
|
92
|
+
If you're migrating a project from a previous version: be sure that any
|
93
|
+
dependency on Waterpig is at least at 0.12. Then remove any `before :step`
|
94
|
+
calls in spec support files.
|
95
|
+
|
92
96
|
## Advanced stuff: shared steps
|
93
97
|
|
94
98
|
If you have (for example) two user stories that share the same first N steps but then
|
data/lib/rspec-steps/builder.rb
CHANGED
@@ -8,6 +8,9 @@ module RSpec::Steps
|
|
8
8
|
describer = @describer
|
9
9
|
|
10
10
|
RSpec.describe(*describer.group_args, describer.metadata) do
|
11
|
+
describer.modules.each do |mod|
|
12
|
+
mod.apply(self)
|
13
|
+
end
|
11
14
|
describer.let_list.each do |letter|
|
12
15
|
letter.define_on(describer.step_list, self)
|
13
16
|
end
|
@@ -3,9 +3,9 @@ require 'rspec-steps/step'
|
|
3
3
|
require 'rspec-steps/hook'
|
4
4
|
require 'rspec-steps/step-list'
|
5
5
|
require 'rspec-steps/lets'
|
6
|
+
require 'rspec-steps/modules'
|
6
7
|
|
7
8
|
module RSpec::Steps
|
8
|
-
|
9
9
|
class Describer
|
10
10
|
def initialize(args, metadata, &block)
|
11
11
|
@group_args = args
|
@@ -17,9 +17,10 @@ module RSpec::Steps
|
|
17
17
|
@step_list = StepList.new
|
18
18
|
@hooks = []
|
19
19
|
@let_list = []
|
20
|
+
@modules = []
|
20
21
|
instance_eval(&block)
|
21
22
|
end
|
22
|
-
attr_reader :group_args, :let_list, :step_list, :hooks, :metadata
|
23
|
+
attr_reader :group_args, :modules, :let_list, :step_list, :hooks, :metadata
|
23
24
|
|
24
25
|
def step(*args, &action)
|
25
26
|
metadata = {}
|
@@ -45,8 +46,18 @@ module RSpec::Steps
|
|
45
46
|
SharedSteps[name] = Describer.new(args, {:caller => caller}, &block)
|
46
47
|
end
|
47
48
|
|
49
|
+
def include(mod)
|
50
|
+
@modules << ModuleInclusion.new(mod)
|
51
|
+
end
|
52
|
+
|
53
|
+
def extend(mod)
|
54
|
+
@modules << ModuleExtension.new(mod)
|
55
|
+
end
|
56
|
+
|
48
57
|
def perform_steps(name)
|
49
58
|
describer = SharedSteps.fetch(name)
|
59
|
+
@modules += describer.modules
|
60
|
+
@let_list += describer.let_list
|
50
61
|
@hooks += describer.hooks
|
51
62
|
@step_list += describer.step_list
|
52
63
|
end
|
data/lib/rspec-steps/dsl.rb
CHANGED
@@ -23,7 +23,7 @@ module RSpec::Steps
|
|
23
23
|
name = args.first
|
24
24
|
raise "shared step lists need a String for a name" unless name.is_a? String
|
25
25
|
raise "there is already a step list named #{name}" if SharedSteps.has_key?(name)
|
26
|
-
SharedSteps[name] = Describer.new(*args, &block)
|
26
|
+
SharedSteps[name] = Describer.new(*args, {:caller => caller}, &block)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
extend DSL
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module RSpec::Steps
|
2
|
+
class ModuleExtension
|
3
|
+
def initialize(mod)
|
4
|
+
@mod = mod
|
5
|
+
end
|
6
|
+
|
7
|
+
def apply(target)
|
8
|
+
mod = @mod
|
9
|
+
target.instance_eval { extend mod }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class ModuleInclusion
|
14
|
+
def initialize(mod)
|
15
|
+
@mod = mod
|
16
|
+
end
|
17
|
+
|
18
|
+
def apply(target)
|
19
|
+
mod = @mod
|
20
|
+
target.instance_eval { include mod }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/spec/example_group_spec.rb
CHANGED
@@ -19,6 +19,29 @@ describe RSpec::Core::ExampleGroup do
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
it "should handle inclusion and extension with modules" do
|
23
|
+
module Testing
|
24
|
+
def something
|
25
|
+
42
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
group = nil
|
30
|
+
sandboxed do
|
31
|
+
group = RSpec.steps "Test Steps" do
|
32
|
+
include Testing
|
33
|
+
extend Testing
|
34
|
+
|
35
|
+
it("accesses a method from a module"){ expect(something).to eq 42 }
|
36
|
+
end
|
37
|
+
group.run
|
38
|
+
end
|
39
|
+
|
40
|
+
group.examples.each do |example|
|
41
|
+
expect(example.metadata[:execution_result].status).to eq(:passed)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
22
45
|
it "should define let blocks correctly" do
|
23
46
|
group = nil
|
24
47
|
sandboxed do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-steps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Judson Lester
|
@@ -9,61 +9,68 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-12-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: corundum
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 0.4.0
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - '>='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 0.4.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: metric_fu
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 4.11.1
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ~>
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 4.11.1
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - '>='
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '3.0'
|
49
|
-
- -
|
49
|
+
- - <
|
50
50
|
- !ruby/object:Gem::Version
|
51
51
|
version: '3.99'
|
52
52
|
type: :runtime
|
53
53
|
prerelease: false
|
54
54
|
version_requirements: !ruby/object:Gem::Requirement
|
55
55
|
requirements:
|
56
|
-
- -
|
56
|
+
- - '>='
|
57
57
|
- !ruby/object:Gem::Version
|
58
58
|
version: '3.0'
|
59
|
-
- -
|
59
|
+
- - <
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '3.99'
|
62
|
-
description: |2
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
62
|
+
description: |2+
|
63
|
+
A minimal implementation of integration testing within RSpec.
|
64
|
+
Allows you to build sequential specs, each with a description,
|
65
|
+
but where state is maintained between tests and before/after actions are only
|
66
|
+
triggered at the beginning and end of the entire sequence. Cool things you
|
67
|
+
can do with this:
|
68
|
+
|
69
|
+
* Build multi-step user stories in plain RSpec syntax. Locate the point of
|
70
|
+
failure quickly, and break up large integrations into sensible steps
|
71
|
+
* Speed up groups of related tests by running your factories only once before
|
72
|
+
the whole group.
|
73
|
+
|
67
74
|
email:
|
68
75
|
- judson@lrdesign.com
|
69
76
|
- evan@lrdesign.com
|
@@ -313,6 +320,7 @@ files:
|
|
313
320
|
- lib/rspec-steps/dsl.rb
|
314
321
|
- lib/rspec-steps/hook.rb
|
315
322
|
- lib/rspec-steps/lets.rb
|
323
|
+
- lib/rspec-steps/modules.rb
|
316
324
|
- lib/rspec-steps/monkeypatching.rb
|
317
325
|
- lib/rspec-steps/step-list.rb
|
318
326
|
- lib/rspec-steps/step-result.rb
|
@@ -329,21 +337,21 @@ licenses:
|
|
329
337
|
metadata: {}
|
330
338
|
post_install_message:
|
331
339
|
rdoc_options:
|
332
|
-
-
|
333
|
-
-
|
340
|
+
- --inline-source
|
341
|
+
- --main
|
334
342
|
- doc/README
|
335
|
-
-
|
336
|
-
- rspec-steps-2.0
|
343
|
+
- --title
|
344
|
+
- rspec-steps-2.1.0 RDoc
|
337
345
|
require_paths:
|
338
346
|
- lib/
|
339
347
|
required_ruby_version: !ruby/object:Gem::Requirement
|
340
348
|
requirements:
|
341
|
-
- -
|
349
|
+
- - '>='
|
342
350
|
- !ruby/object:Gem::Version
|
343
351
|
version: '0'
|
344
352
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
345
353
|
requirements:
|
346
|
-
- -
|
354
|
+
- - '>='
|
347
355
|
- !ruby/object:Gem::Version
|
348
356
|
version: '0'
|
349
357
|
requirements: []
|