rspec-rails 2.0.0.rc → 2.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.
- data/Gemfile +2 -2
- data/History.md +8 -0
- data/Rakefile +36 -2
- data/Upgrade.markdown +19 -6
- data/features/README.markdown +13 -8
- data/lib/autotest/rails_rspec2.rb +1 -1
- data/lib/generators/rspec/scaffold/templates/new_spec.rb +2 -4
- data/lib/rspec/rails.rb +5 -0
- data/lib/rspec/rails/matchers/routing_matchers.rb +1 -1
- data/lib/rspec/rails/version.rb +1 -1
- data/rspec-rails.gemspec +2 -2
- data/spec/autotest/rails_rspec2_spec.rb +30 -14
- data/spec/rspec/rails/matchers/route_to_spec.rb +2 -2
- metadata +17 -24
- data/Gotchas.markdown +0 -14
data/Gemfile
CHANGED
@@ -9,8 +9,8 @@ gem 'rspec-expectations', :path => "../rspec-expectations"
|
|
9
9
|
gem 'rspec-mocks', :path => "../rspec-mocks"
|
10
10
|
gem 'rspec', :path => "../rspec"
|
11
11
|
|
12
|
-
gem 'cucumber'
|
13
|
-
gem 'aruba', "
|
12
|
+
gem 'cucumber', '~> 0.9.2'
|
13
|
+
gem 'aruba', "~> 0.2.3", :require => nil
|
14
14
|
gem 'webrat', ">= 0.7.2.beta.1"
|
15
15
|
gem 'sqlite3-ruby', :require => 'sqlite3'
|
16
16
|
|
data/History.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
## rspec-rails release history (incomplete)
|
2
2
|
|
3
|
+
### 2.0.0 / 2010-10-10
|
4
|
+
|
5
|
+
[full changelog](http://github.com/rspec/rspec-rails/compare/v2.0.0.rc...v2.0.0)
|
6
|
+
|
7
|
+
* Changes
|
8
|
+
* route_to matcher delegates to assert_recognizes instead of assert_routing
|
9
|
+
* update generators to use as_new_record instead of :new_record => true
|
10
|
+
|
3
11
|
### 2.0.0.rc / 2010-10-05
|
4
12
|
|
5
13
|
[full changelog](http://github.com/rspec/rspec-rails/compare/v2.0.0.beta.22...v2.0.0.rc)
|
data/Rakefile
CHANGED
@@ -20,7 +20,6 @@ require 'rspec'
|
|
20
20
|
require 'rspec/core/rake_task'
|
21
21
|
require 'cucumber/rake/task'
|
22
22
|
|
23
|
-
RSpec::Core::RakeTask.new(:spec)
|
24
23
|
class Cucumber::Rake::Task::ForkedCucumberRunner
|
25
24
|
# When cucumber shells out, we still need it to run in the context of our
|
26
25
|
# bundle.
|
@@ -28,8 +27,37 @@ class Cucumber::Rake::Task::ForkedCucumberRunner
|
|
28
27
|
sh "bundle exec #{RUBY} " + args.join(" ")
|
29
28
|
end
|
30
29
|
end
|
30
|
+
|
31
|
+
task :cleanup_rcov_files do
|
32
|
+
rm_rf 'coverage.data'
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "Run all examples"
|
36
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
37
|
+
t.rspec_opts = %w[--color]
|
38
|
+
end
|
39
|
+
|
31
40
|
Cucumber::Rake::Task.new(:cucumber)
|
32
41
|
|
42
|
+
namespace :spec do
|
43
|
+
desc "Run all examples using rcov"
|
44
|
+
RSpec::Core::RakeTask.new :rcov => :cleanup_rcov_files do |t|
|
45
|
+
t.rcov = true
|
46
|
+
t.rcov_opts = %[-Ilib -Ispec --exclude "gems/*,features"]
|
47
|
+
t.rcov_opts << %[--text-report --sort coverage --no-html --aggregate coverage.data]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
namespace :cucumber do
|
52
|
+
desc "Run cucumber features using rcov"
|
53
|
+
Cucumber::Rake::Task.new :rcov => :cleanup_rcov_files do |t|
|
54
|
+
t.cucumber_opts = %w{--format progress}
|
55
|
+
t.rcov = true
|
56
|
+
t.rcov_opts = %[-Ilib -Ispec --exclude "gems/*,features"]
|
57
|
+
t.rcov_opts << %[--text-report --sort coverage --aggregate coverage.data]
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
33
61
|
namespace :generate do
|
34
62
|
desc "generate a fresh app with rspec installed"
|
35
63
|
task :app do |t|
|
@@ -85,5 +113,11 @@ namespace :clobber do
|
|
85
113
|
end
|
86
114
|
end
|
87
115
|
|
88
|
-
|
116
|
+
desc "Push cukes to relishapp using the relish-client-gem"
|
117
|
+
task :relish, :version do |t, args|
|
118
|
+
raise "rake relish[VERSION]" unless args[:version]
|
119
|
+
sh "bundle exec relish --organization rspec --project rspec-rails -v #{args[:version]} push"
|
120
|
+
end
|
121
|
+
|
122
|
+
task :default => [:spec, "clobber:app", "generate:app", "generate:stuff", :smoke, :cucumber]
|
89
123
|
|
data/Upgrade.markdown
CHANGED
@@ -1,11 +1,10 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
### Webrat or Capybara
|
1
|
+
# Upgrade to rspec-rails-2
|
4
2
|
|
5
|
-
|
6
|
-
using webrat or capybara. Just add the library of your choice to your Gemfile.
|
3
|
+
## Webrat and Capybara
|
7
4
|
|
8
|
-
|
5
|
+
Earlier 2.0.0.beta versions depended on Webrat. As of
|
6
|
+
rspec-rails-2.0.0.beta.20, this dependency and offers you a choice of using
|
7
|
+
webrat or capybara. Just add the library of your choice to your Gemfile.
|
9
8
|
|
10
9
|
## Controller specs
|
11
10
|
|
@@ -29,3 +28,17 @@ partial gets rendered:
|
|
29
28
|
render
|
30
29
|
view.should render_template(:partial => "widget/_row")
|
31
30
|
|
31
|
+
## as_new_record
|
32
|
+
|
33
|
+
Earlier versions of the view generators generated stub_model with `:new_record?
|
34
|
+
=> true`. As of rspec-rails-2.0.0.rc, that is no longer recognized, so you need
|
35
|
+
to change this:
|
36
|
+
|
37
|
+
stub_model(Widget, :new_record? => true)
|
38
|
+
|
39
|
+
to this:
|
40
|
+
|
41
|
+
stub_model(Widget).as_new_record
|
42
|
+
|
43
|
+
Generators in 2.0.0 final release will do the latter.
|
44
|
+
|
data/features/README.markdown
CHANGED
@@ -1,12 +1,17 @@
|
|
1
|
-
|
1
|
+
rspec-rails extends Rails' built-in testing framework to support rspec examples
|
2
|
+
for requests, controllers, models, views, and helpers.
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
behaviour.
|
4
|
+
## Rails-3
|
5
|
+
|
6
|
+
rspec-rails-2 supports rails-3.0.0 and later. For earlier versions of Rails,
|
7
|
+
you need [rspec-rails-1.3](http://rspec.info).
|
8
8
|
|
9
9
|
## Issues
|
10
10
|
|
11
|
-
|
12
|
-
|
11
|
+
The documentation for rspec-rails is a work in progress. We'll be adding
|
12
|
+
Cucumber features over time, and clarifying existing ones. If you have
|
13
|
+
specific features you'd like to see added, find the existing documentation
|
14
|
+
incomplete or confusing, or, better yet, wish to write a missing Cucumber
|
15
|
+
feature yourself, please [submit an
|
16
|
+
issue](http://github.com/rspec/rspec-rails/issues) or a [pull
|
17
|
+
request](http://github.com/rspec/rspec-rails).
|
@@ -71,7 +71,7 @@ class Autotest::RailsRspec2 < Autotest::Rspec2
|
|
71
71
|
add_mapping(%r%^config/database\.yml$%) { |_, m|
|
72
72
|
files_matching %r%^spec/models/.*_spec\.rb$%
|
73
73
|
}
|
74
|
-
add_mapping(%r%^(spec/(spec_helper|
|
74
|
+
add_mapping(%r%^(spec/(spec_helper|support/.*)|config/(boot|environment(s/test)?))\.rb$%) {
|
75
75
|
files_matching %r%^spec/(models|controllers|routing|views|helpers)/.*_spec\.rb$%
|
76
76
|
}
|
77
77
|
add_mapping(%r%^lib/(.*)\.rb$%) { |_, m|
|
@@ -3,13 +3,11 @@ require 'spec_helper'
|
|
3
3
|
<% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%>
|
4
4
|
describe "<%= table_name %>/new.html.<%= options[:template_engine] %>" do
|
5
5
|
before(:each) do
|
6
|
-
assign(:<%= file_name %>, stub_model(<%= class_name
|
7
|
-
:new_record? => true<%= output_attributes.empty? ? '' : ',' %>
|
6
|
+
assign(:<%= file_name %>, stub_model(<%= class_name %><%= output_attributes.empty? ? ').as_new_record)' : ',' %>
|
8
7
|
<% output_attributes.each_with_index do |attribute, attribute_index| -%>
|
9
8
|
:<%= attribute.name %> => <%= attribute.default.inspect %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
|
10
9
|
<% end -%>
|
11
|
-
))
|
12
|
-
end
|
10
|
+
<%= !output_attributes.empty? ? " ).as_new_record)\n end" : " end" %>
|
13
11
|
|
14
12
|
it "renders new <%= file_name %> form" do
|
15
13
|
render
|
data/lib/rspec/rails.rb
CHANGED
@@ -8,6 +8,11 @@ module RSpec
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
RSpec::configure do |c|
|
12
|
+
c.backtrace_clean_patterns << /vendor\//
|
13
|
+
c.backtrace_clean_patterns << /lib\/rspec\/rails/
|
14
|
+
end
|
15
|
+
|
11
16
|
require 'rspec/core'
|
12
17
|
require 'rspec/rails/extensions'
|
13
18
|
require 'rspec/rails/view_rendering'
|
@@ -5,7 +5,7 @@ module RSpec::Rails::Matchers
|
|
5
5
|
matcher :route_to do |route_options|
|
6
6
|
match_unless_raises Test::Unit::AssertionFailedError do |path|
|
7
7
|
assertion_path = { :method => path.keys.first, :path => path.values.first }
|
8
|
-
|
8
|
+
assert_recognizes(route_options, assertion_path)
|
9
9
|
end
|
10
10
|
|
11
11
|
failure_message_for_should do
|
data/lib/rspec/rails/version.rb
CHANGED
data/rspec-rails.gemspec
CHANGED
@@ -45,8 +45,8 @@ Gem::Specification.new do |s|
|
|
45
45
|
Even if you've run it before, this ensures that you have the latest updates
|
46
46
|
to spec/spec_helper.rb and any other support files.
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
Beta versions of rspec-rails-2 installed files that are no longer being used,
|
49
|
+
so please remove these files if you have them:
|
50
50
|
|
51
51
|
lib/tasks/rspec.rake
|
52
52
|
config/initializers/rspec_generator.rb
|
@@ -2,24 +2,40 @@ require "spec_helper"
|
|
2
2
|
require "autotest/rails_rspec2"
|
3
3
|
|
4
4
|
describe Autotest::RailsRspec2 do
|
5
|
-
before(:each) do
|
6
|
-
rails_rspec2_autotest = Autotest::RailsRspec2.new
|
7
|
-
@re = rails_rspec2_autotest.exceptions
|
8
|
-
end
|
9
5
|
|
10
|
-
|
11
|
-
@re.should match('./log/test.log')
|
12
|
-
end
|
6
|
+
let(:rails_rspec2_autotest) { Autotest::RailsRspec2.new }
|
13
7
|
|
14
|
-
|
15
|
-
|
16
|
-
|
8
|
+
describe 'exceptions' do
|
9
|
+
let(:exceptions_regexp) { rails_rspec2_autotest.exceptions }
|
10
|
+
|
11
|
+
it "should match './log/test.log'" do
|
12
|
+
exceptions_regexp.should match('./log/test.log')
|
13
|
+
end
|
17
14
|
|
18
|
-
|
19
|
-
|
15
|
+
it "should match 'log/test.log'" do
|
16
|
+
exceptions_regexp.should match('log/test.log')
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should not match './spec/models/user_spec.rb'" do
|
20
|
+
exceptions_regexp.should_not match('./spec/models/user_spec.rb')
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should not match 'spec/models/user_spec.rb'" do
|
24
|
+
exceptions_regexp.should_not match('spec/models/user_spec.rb')
|
25
|
+
end
|
20
26
|
end
|
21
27
|
|
22
|
-
|
23
|
-
|
28
|
+
describe 'mappings' do
|
29
|
+
before do
|
30
|
+
rails_rspec2_autotest.find_order = %w(
|
31
|
+
spec/models/user_spec.rb
|
32
|
+
spec/support/blueprints.rb
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'runs model specs when support files change' do
|
37
|
+
rails_rspec2_autotest.test_files_for('spec/support/blueprints.rb').should(
|
38
|
+
include('spec/models/user_spec.rb'))
|
39
|
+
end
|
24
40
|
end
|
25
41
|
end
|
@@ -3,8 +3,8 @@ require "spec_helper"
|
|
3
3
|
describe "route_to" do
|
4
4
|
include RSpec::Rails::Matchers::RoutingMatchers
|
5
5
|
|
6
|
-
it "uses failure message from
|
7
|
-
self.stub!(:
|
6
|
+
it "uses failure message from assert_recognizes" do
|
7
|
+
self.stub!(:assert_recognizes).and_raise(
|
8
8
|
Test::Unit::AssertionFailedError.new("this message"))
|
9
9
|
expect do
|
10
10
|
{"this" => "path"}.should route_to("these" => "options")
|
metadata
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: true
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 2
|
8
7
|
- 0
|
9
8
|
- 0
|
10
|
-
|
11
|
-
version: 2.0.0.rc
|
9
|
+
version: 2.0.0
|
12
10
|
platform: ruby
|
13
11
|
authors:
|
14
12
|
- David Chelimsky
|
@@ -17,26 +15,24 @@ autorequire:
|
|
17
15
|
bindir: bin
|
18
16
|
cert_chain: []
|
19
17
|
|
20
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-10 00:00:00 -05:00
|
21
19
|
default_executable:
|
22
20
|
dependencies:
|
23
21
|
- !ruby/object:Gem::Dependency
|
24
|
-
|
22
|
+
name: rspec
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
25
|
requirements:
|
27
26
|
- - "="
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 7712058
|
30
28
|
segments:
|
31
29
|
- 2
|
32
30
|
- 0
|
33
31
|
- 0
|
34
|
-
|
35
|
-
version: 2.0.0.rc
|
36
|
-
requirement: *id001
|
32
|
+
version: 2.0.0
|
37
33
|
type: :runtime
|
38
|
-
name: rspec
|
39
34
|
prerelease: false
|
35
|
+
version_requirements: *id001
|
40
36
|
description: RSpec-2 for Rails-3
|
41
37
|
email: dchelimsky@gmail.com;chad.humphries@gmail.com
|
42
38
|
executables: []
|
@@ -49,7 +45,6 @@ files:
|
|
49
45
|
- .document
|
50
46
|
- .gitignore
|
51
47
|
- Gemfile
|
52
|
-
- Gotchas.markdown
|
53
48
|
- History.md
|
54
49
|
- README.markdown
|
55
50
|
- Rakefile
|
@@ -170,7 +165,7 @@ licenses: []
|
|
170
165
|
post_install_message: |
|
171
166
|
**************************************************
|
172
167
|
|
173
|
-
Thank you for installing rspec-rails-2.0.0
|
168
|
+
Thank you for installing rspec-rails-2.0.0!
|
174
169
|
|
175
170
|
This version of rspec-rails only works with versions of rails >= 3.0.0
|
176
171
|
|
@@ -180,7 +175,7 @@ post_install_message: |
|
|
180
175
|
can access its generators and rake tasks.
|
181
176
|
|
182
177
|
group :development, :test do
|
183
|
-
gem "rspec-rails", ">= 2.0.0
|
178
|
+
gem "rspec-rails", ">= 2.0.0"
|
184
179
|
end
|
185
180
|
|
186
181
|
Be sure to run the following command in each of your Rails apps if you're
|
@@ -191,8 +186,8 @@ post_install_message: |
|
|
191
186
|
Even if you've run it before, this ensures that you have the latest updates
|
192
187
|
to spec/spec_helper.rb and any other support files.
|
193
188
|
|
194
|
-
|
195
|
-
|
189
|
+
Beta versions of rspec-rails-2 installed files that are no longer being used,
|
190
|
+
so please remove these files if you have them:
|
196
191
|
|
197
192
|
lib/tasks/rspec.rake
|
198
193
|
config/initializers/rspec_generator.rb
|
@@ -211,28 +206,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
211
206
|
requirements:
|
212
207
|
- - ">="
|
213
208
|
- !ruby/object:Gem::Version
|
214
|
-
hash:
|
209
|
+
hash: 4170741284803000716
|
215
210
|
segments:
|
216
211
|
- 0
|
217
212
|
version: "0"
|
218
213
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
219
214
|
none: false
|
220
215
|
requirements:
|
221
|
-
- - "
|
216
|
+
- - ">="
|
222
217
|
- !ruby/object:Gem::Version
|
223
|
-
hash:
|
218
|
+
hash: 4170741284803000716
|
224
219
|
segments:
|
225
|
-
-
|
226
|
-
|
227
|
-
- 1
|
228
|
-
version: 1.3.1
|
220
|
+
- 0
|
221
|
+
version: "0"
|
229
222
|
requirements: []
|
230
223
|
|
231
224
|
rubyforge_project: rspec
|
232
225
|
rubygems_version: 1.3.7
|
233
226
|
signing_key:
|
234
227
|
specification_version: 3
|
235
|
-
summary: rspec-rails-2.0.0
|
228
|
+
summary: rspec-rails-2.0.0
|
236
229
|
test_files:
|
237
230
|
- features/README.markdown
|
238
231
|
- features/controller_specs/anonymous_controller.feature
|
data/Gotchas.markdown
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# Gotchas
|
2
|
-
|
3
|
-
## Name conflicts with upstream dependencies
|
4
|
-
|
5
|
-
Examples in rspec-rails mix in Rails' assertion modules, which mix in assertion
|
6
|
-
libraries from Minitest (if available) or Test::Unit. This makes it easy to
|
7
|
-
accidentally override a method defined in one of those upstream modules in an
|
8
|
-
example.
|
9
|
-
|
10
|
-
For example, if you have a model named `Message`, and you define a `message`
|
11
|
-
method (using `def message` or `let(:message)` in an example group, it will
|
12
|
-
override Minitest's `message` method, which is used internally by Minitest, and
|
13
|
-
is also a public API of Minitest. In this case, you would need to use a
|
14
|
-
different method name or work with instance variables instead of methods.
|