steak 1.0.0.rc.2 → 1.0.0.rc.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +1 -0
- data/lib/rspec-1/steak.rb +2 -2
- data/lib/rspec-2/steak.rb +10 -7
- data/spec/acceptance/rspec-1/acceptance_helper.rb +21 -21
- data/spec/acceptance/rspec-1/basic_spec.rb +26 -0
- data/spec/acceptance/rspec-2/basic_spec.rb +43 -0
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -162,6 +162,7 @@ You'd do it this way:
|
|
162
162
|
- Issues: http://github.com/cavalle/steak/issues
|
163
163
|
- Group: http://groups.google.com/group/steakrb
|
164
164
|
- IRC channel: #steakrb on freenode
|
165
|
+
- Twitter: http://twitter.com/steakrb
|
165
166
|
- Tutorial: http://jeffkreeftmeijer.com/2010/steak-because-cucumber-is-for-vegetarians/
|
166
167
|
- Hashtag: #steakrb
|
167
168
|
- More resources: http://wiki.github.com/cavalle/steak/resources
|
data/lib/rspec-1/steak.rb
CHANGED
data/lib/rspec-2/steak.rb
CHANGED
@@ -9,14 +9,17 @@ module Steak
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
12
|
-
end
|
13
12
|
|
14
|
-
module
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
module DSL
|
14
|
+
def feature(*args, &block)
|
15
|
+
args << {} unless args.last.is_a?(Hash)
|
16
|
+
args.last.update :type => :acceptance, :steak => true, :caller => caller
|
17
|
+
describe(*args, &block)
|
18
|
+
end
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
|
22
|
+
extend Steak::DSL
|
23
|
+
|
24
|
+
RSpec.configuration.include Steak::AcceptanceExampleGroup, :type => :acceptance
|
25
|
+
|
@@ -5,7 +5,6 @@ require 'tempfile'
|
|
5
5
|
|
6
6
|
module RSpec_1
|
7
7
|
module Factories
|
8
|
-
|
9
8
|
def create_spec(options)
|
10
9
|
options = {:content => options} unless options.is_a?(Hash)
|
11
10
|
path = (options[:path] || current_dir) + "/#{String.random}_spec.rb"
|
@@ -44,10 +43,15 @@ module RSpec_1
|
|
44
43
|
|
45
44
|
module HelperMethods
|
46
45
|
def run(cmd)
|
47
|
-
|
48
|
-
|
46
|
+
puts cmd if trace?
|
47
|
+
`rvm 1.8.7@steak-rspec-1 exec #{cmd} 2>&1`.tap do |o|
|
48
|
+
puts o if trace? and o
|
49
49
|
end
|
50
50
|
end
|
51
|
+
|
52
|
+
def trace?
|
53
|
+
ENV['TRACE']
|
54
|
+
end
|
51
55
|
|
52
56
|
def run_spec(file_path)
|
53
57
|
run "spec #{file_path}"
|
@@ -61,30 +65,26 @@ module RSpec_1
|
|
61
65
|
File.expand_path(File.dirname(__FILE__) + "/../../../")
|
62
66
|
end
|
63
67
|
end
|
68
|
+
|
69
|
+
def self.gemset_create(gemset, *gems)
|
70
|
+
`rvm gemset create #{gemset}`
|
71
|
+
gems.each do |name|
|
72
|
+
`rvm #{gemset} gem search #{name} -i || rvm #{gemset} gem install #{name}`
|
73
|
+
end
|
74
|
+
end
|
64
75
|
|
65
76
|
RSpec.configure do |config|
|
66
77
|
config.include Factories, :example_group => { :file_path => /rspec-1/}
|
67
78
|
config.include HelperMethods, :example_group => { :file_path => /rspec-1/}
|
68
|
-
config.before :
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
gem "rails", "~> 2.3.8"
|
76
|
-
gem "webrat"
|
77
|
-
gem "capybara"
|
78
|
-
Gemfile
|
79
|
-
end
|
80
|
-
Dir.chdir current_dir do
|
81
|
-
`rvm gemset create steak-rspec-1`
|
82
|
-
`gem install bundler`
|
83
|
-
`bundle install`
|
84
|
-
end
|
79
|
+
config.before :suite do
|
80
|
+
gemset_create "1.8.7@steak-rspec-1", "rspec-rails -v '~> 1.3.0'",
|
81
|
+
"rails -v '~> 2.3.8'",
|
82
|
+
"webrat",
|
83
|
+
"capybara",
|
84
|
+
"sqlite3-ruby",
|
85
|
+
"rake"
|
85
86
|
end
|
86
87
|
end
|
87
|
-
|
88
88
|
end
|
89
89
|
|
90
90
|
class String
|
@@ -47,4 +47,30 @@ feature "Acceptance spec execution", %q{
|
|
47
47
|
output = run_spec spec_file
|
48
48
|
output.should =~ /1 example, 0 failures/
|
49
49
|
end
|
50
|
+
|
51
|
+
scenario "Steak should not pollute Object methods namespace" do
|
52
|
+
spec_file = create_spec <<-SPEC
|
53
|
+
require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
|
54
|
+
|
55
|
+
class Wadus
|
56
|
+
def call_feature
|
57
|
+
feature
|
58
|
+
end
|
59
|
+
|
60
|
+
def method_missing(meth, *args, &blk)
|
61
|
+
return "Hello!"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
feature "Wadus class" do
|
66
|
+
scenario "should not be polluted by Steak" do
|
67
|
+
w = Wadus.new
|
68
|
+
w.should_not respond_to(:feature)
|
69
|
+
w.call_feature.should == "Hello!"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
SPEC
|
73
|
+
output = run_spec spec_file
|
74
|
+
output.should =~ /1 example, 0 failures/
|
75
|
+
end
|
50
76
|
end
|
@@ -55,6 +55,7 @@ feature "Acceptance spec execution", %q{
|
|
55
55
|
scenario "should have acceptance metadata" do
|
56
56
|
example.metadata[:type].should == :acceptance
|
57
57
|
example.metadata[:steak].should be_true
|
58
|
+
example.metadata[:file_path].should == __FILE__
|
58
59
|
end
|
59
60
|
end
|
60
61
|
SPEC
|
@@ -75,4 +76,46 @@ feature "Acceptance spec execution", %q{
|
|
75
76
|
output = run_spec spec_file
|
76
77
|
output.should =~ /1 example, 0 failures/
|
77
78
|
end
|
79
|
+
|
80
|
+
scenario "Feature-level file path metadata filtering" do
|
81
|
+
spec_file = create_spec <<-SPEC
|
82
|
+
require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
|
83
|
+
RSpec.configuration.before(:each, :example_group => {:file_path => __FILE__}) do
|
84
|
+
@executed = true
|
85
|
+
end
|
86
|
+
feature "Minimal spec" do
|
87
|
+
scenario "should have run the before block" do
|
88
|
+
@executed.should be_true
|
89
|
+
end
|
90
|
+
end
|
91
|
+
SPEC
|
92
|
+
output = run_spec spec_file
|
93
|
+
output.should =~ /1 example, 0 failures/
|
94
|
+
end
|
95
|
+
|
96
|
+
scenario "Steak should not pollute Object methods namespace" do
|
97
|
+
spec_file = create_spec <<-SPEC
|
98
|
+
require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
|
99
|
+
|
100
|
+
class Wadus
|
101
|
+
def call_feature
|
102
|
+
feature
|
103
|
+
end
|
104
|
+
|
105
|
+
def method_missing(meth, *args, &blk)
|
106
|
+
return "Hello!"
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
feature "Wadus class" do
|
111
|
+
scenario "should not be polluted by Steak" do
|
112
|
+
w = Wadus.new
|
113
|
+
w.should_not respond_to(:feature)
|
114
|
+
w.call_feature.should == "Hello!"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
SPEC
|
118
|
+
output = run_spec spec_file
|
119
|
+
output.should =~ /1 example, 0 failures/
|
120
|
+
end
|
78
121
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: steak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15424051
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
9
|
- 0
|
10
10
|
- rc
|
11
|
-
-
|
12
|
-
version: 1.0.0.rc.
|
11
|
+
- 3
|
12
|
+
version: 1.0.0.rc.3
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- "Luismi Cavall\xC3\xA9"
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2010-
|
20
|
+
date: 2010-11-17 00:00:00 +01:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|