rspec-rails 3.0.1 → 3.0.2
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 +6 -14
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +10 -1
- data/README.md +166 -100
- data/lib/generators/rspec/controller/templates/controller_spec.rb +2 -2
- data/lib/generators/rspec/install/templates/spec/rails_helper.rb +1 -1
- data/lib/rspec/rails/adapters.rb +9 -1
- data/lib/rspec/rails/version.rb +1 -1
- metadata +58 -65
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
YWM1YWQzOGEwMDI3YjdjZWEyNGU0ZGYxMmZiZDAxMWViNmJlYWI1NDE1N2I0
|
10
|
-
OWY1YThiYjFkZDYwMzg5ZmJjNTVmZGMxNjVkZjFjMGIzYTY1NWQ3MzdjNzIx
|
11
|
-
YmE0Y2UzYTE5Y2JhZjkwNGE3ZjZjNzFlNWQ0ZGJjMTQ5NTIzNWY=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YjVmZWE0MTVmN2Y2YjY3ZmE4Yjc4YWQyMWZlNDViNmU5YTFlODhhNDUwYTQw
|
14
|
-
NDJjNGM1MzllMmMyMjYyZDZkZmEyOWU2MTYzZGMyMDMxNDZkNDAxYWZlMmQx
|
15
|
-
ZDk4OTkzOTY3ODkzNjYwOWEzMzE1NTliMGEwMTYyNjM1MWRkMjM=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 531ee4388e3473684c081da49e38e0254cc1503a
|
4
|
+
data.tar.gz: a24b272abedc01e713c31c991473bf8b290dec87
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 626e65139ca363cff2f5c770cd2eee8d2b4c45923a9f06ca56bf25010b55fba93f6d650a5c4092549dbef17943230e65e2aeb60b8c250ce9b2da77febb9c0fc2
|
7
|
+
data.tar.gz: 50b67c8d265abe9a766d50df2d0780febd6910f9ff3aef9a74aed19de6ae37c6a0ceee306851c2ca5129c1ae355e44e72283db60959bd2e4481e6a31d6786ba6
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Changelog.md
CHANGED
@@ -1,9 +1,18 @@
|
|
1
|
+
### 3.0.2 / 2014-07-21
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-rails/compare/v3.0.1...v3.0.2)
|
3
|
+
|
4
|
+
Bug Fixes:
|
5
|
+
|
6
|
+
* Suppress warning in `SetupAndTeardownAdapter`. (André Arko, #1085)
|
7
|
+
* Remove dependency on Rubygems. (Andre Arko & Doc Riteze, #1099)
|
8
|
+
* Standardize controller spec template style. (Thomas Kriechbaumer, #1122)
|
9
|
+
|
1
10
|
### 3.0.1 / 2014-06-02
|
2
11
|
[Full Changelog](http://github.com/rspec/rspec-rails/compare/v3.0.0...v3.0.1)
|
3
12
|
|
4
13
|
Bug Fixes:
|
5
14
|
|
6
|
-
* Fix missing require in `rails g rspec:install`. (Sam Phippen)
|
15
|
+
* Fix missing require in `rails g rspec:install`. (Sam Phippen, #1058)
|
7
16
|
|
8
17
|
### 3.0.0 / 2014-06-01
|
9
18
|
[Full Changelog](http://github.com/rspec/rspec-rails/compare/v3.0.0.rc1...v3.0.0)
|
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
# rspec-rails [](http://travis-ci.org/rspec/rspec-rails) [](https://codeclimate.com/github/rspec/rspec-rails)
|
2
|
-
|
1
|
+
# rspec-rails [](http://travis-ci.org/rspec/rspec-rails) [](https://codeclimate.com/github/rspec/rspec-rails)
|
3
2
|
**rspec-rails** is a testing framework for Rails 3.x and 4.x.
|
4
3
|
|
5
4
|
Use **[rspec-rails 1.x](http://github.com/dchelimsky/rspec-rails)** for Rails
|
@@ -28,14 +27,27 @@ Initialize the `spec/` directory (where specs will reside) with:
|
|
28
27
|
rails generate rspec:install
|
29
28
|
```
|
30
29
|
|
31
|
-
This adds
|
32
|
-
|
30
|
+
This adds the following files which are used for configuration:
|
31
|
+
|
32
|
+
- `.rspec`
|
33
|
+
- `spec/spec_helper.rb`
|
34
|
+
- `spec/rails_helper.rb`
|
35
|
+
|
36
|
+
Check the comments in each file for more information.
|
33
37
|
|
34
|
-
|
38
|
+
Use the `rspec` command to run your specs:
|
35
39
|
|
36
40
|
```
|
37
41
|
bundle exec rspec
|
42
|
+
```
|
43
|
+
|
44
|
+
By default the above will run all `_spec.rb` files in the `spec` directory. For
|
45
|
+
more details about this see the [RSpec spec file
|
46
|
+
docs](https://www.relishapp.com/rspec/rspec-core/docs/spec-files).
|
38
47
|
|
48
|
+
To run only a subset of these specs use the following command:
|
49
|
+
|
50
|
+
```
|
39
51
|
# Run only model specs
|
40
52
|
bundle exec rspec spec/models
|
41
53
|
|
@@ -53,6 +65,26 @@ be run via `bin/rspec`:
|
|
53
65
|
bundle binstubs rspec-core
|
54
66
|
```
|
55
67
|
|
68
|
+
### Upgrade Note
|
69
|
+
|
70
|
+
For detailed information on the general RSpec 3.x upgrade process see the
|
71
|
+
[RSpec Upgrade docs](https://relishapp.com/rspec/docs/upgrade).
|
72
|
+
|
73
|
+
There are three particular `rspec-rails` specific changes to be aware of:
|
74
|
+
|
75
|
+
1. [The default helper files created in RSpec 3.x have changed](https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files)
|
76
|
+
2. [File-type inference disabled by default](https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#file-type-inference-disabled)
|
77
|
+
3. [Rails 4.x `ActiveRecord::Migration` pending migration checks](https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#pending-migration-checks)
|
78
|
+
4. Extraction of `stub_model` and `mock_model` to
|
79
|
+
[`rspec-activemodel-mocks`](https://github.com/rspec/rspec-activemodel-mocks)
|
80
|
+
|
81
|
+
Please see the [RSpec Rails Upgrade
|
82
|
+
docs](https://www.relishapp.com/rspec/rspec-rails/docs/upgrade) for full
|
83
|
+
details.
|
84
|
+
|
85
|
+
**NOTE:** Generators run in RSpec 3.x will now require `rails_helper` instead
|
86
|
+
of `spec_helper`.
|
87
|
+
|
56
88
|
### Generators
|
57
89
|
|
58
90
|
Once installed, RSpec will generate spec files instead of Test::Unit test files
|
@@ -66,13 +98,19 @@ generators](https://www.relishapp.com/rspec/rspec-rails/docs/generators).
|
|
66
98
|
|
67
99
|
## Model Specs
|
68
100
|
|
69
|
-
|
70
|
-
|
101
|
+
Use model specs to describe behavior of models (usually ActiveRecord-based) in
|
102
|
+
the application.
|
103
|
+
|
104
|
+
Model specs default to residing in the `spec/models` folder. Tagging any
|
105
|
+
context with the metadata `:type => :model` treats it's examples as model
|
106
|
+
specs.
|
107
|
+
|
108
|
+
For example:
|
71
109
|
|
72
110
|
```ruby
|
73
|
-
require "
|
111
|
+
require "rails_helper"
|
74
112
|
|
75
|
-
describe User do
|
113
|
+
RSpec.describe User, :type => :model do
|
76
114
|
it "orders by last name" do
|
77
115
|
lindeman = User.create!(first_name: "Andy", last_name: "Lindeman")
|
78
116
|
chelimsky = User.create!(first_name: "David", last_name: "Chelimsky")
|
@@ -87,18 +125,23 @@ specs](https://www.relishapp.com/rspec/rspec-rails/docs/model-specs).
|
|
87
125
|
|
88
126
|
## Controller Specs
|
89
127
|
|
90
|
-
|
91
|
-
|
128
|
+
Use controller specs to describe behavior of Rails controllers.
|
129
|
+
|
130
|
+
Controller specs default to residing in the `spec/controllers` folder. Tagging
|
131
|
+
any context with the metadata `:type => :controller` treats it's examples as
|
132
|
+
controller specs.
|
133
|
+
|
134
|
+
For example:
|
92
135
|
|
93
136
|
```ruby
|
94
|
-
require "
|
137
|
+
require "rails_helper"
|
95
138
|
|
96
|
-
describe PostsController do
|
139
|
+
RSpec.describe PostsController, :type => :controller do
|
97
140
|
describe "GET #index" do
|
98
141
|
it "responds successfully with an HTTP 200 status code" do
|
99
142
|
get :index
|
100
143
|
expect(response).to be_success
|
101
|
-
expect(response
|
144
|
+
expect(response).to have_http_status(200)
|
102
145
|
end
|
103
146
|
|
104
147
|
it "renders the index template" do
|
@@ -120,26 +163,31 @@ For more information, see [cucumber scenarios for controller
|
|
120
163
|
specs](https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs).
|
121
164
|
|
122
165
|
**Note:** To encourage more isolated testing, views are not rendered by default
|
123
|
-
in controller specs. If you are verifying discrete view logic, use a
|
124
|
-
|
125
|
-
|
166
|
+
in controller specs. If you are verifying discrete view logic, use a [view
|
167
|
+
spec](#view-specs). If you are verifying the behaviour of a controller and view
|
168
|
+
together, consider a [request spec](#request-specs). You can use
|
126
169
|
[render\_views](https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/render-views)
|
127
|
-
if you must verify the rendered view contents within a controller spec, but
|
128
|
-
not recommended.
|
170
|
+
if you must verify the rendered view contents within a controller spec, but
|
171
|
+
this is not recommended.
|
129
172
|
|
130
|
-
##
|
173
|
+
## Request Specs
|
131
174
|
|
132
|
-
|
133
|
-
|
175
|
+
Use request specs to specify one or more request/response cycles from end to
|
176
|
+
end using a black box approach.
|
177
|
+
|
178
|
+
Request specs default to residing in the `spec/requests`, `spec/api`, and
|
179
|
+
`spec/integration` directories. Tagging any context with the metadata `:type =>
|
180
|
+
:request` treats it's examples as request specs.
|
181
|
+
|
182
|
+
Request specs mix in behavior from
|
134
183
|
[ActionDispatch::Integration::Runner](http://api.rubyonrails.org/classes/ActionDispatch/Integration/Runner.html),
|
135
184
|
which is the basis for [Rails' integration
|
136
|
-
tests](http://guides.rubyonrails.org/testing.html#integration-testing).
|
137
|
-
intent is to specify one or more request/response cycles from end to end using
|
138
|
-
a black box approach.
|
185
|
+
tests](http://guides.rubyonrails.org/testing.html#integration-testing).
|
139
186
|
|
140
187
|
```ruby
|
141
|
-
require '
|
142
|
-
|
188
|
+
require 'rails_helper'
|
189
|
+
|
190
|
+
RSpec.describe "home page", :type => :request do
|
143
191
|
it "displays the user's username after successful login" do
|
144
192
|
user = User.create!(:username => "jdoe", :password => "secret")
|
145
193
|
get "/login"
|
@@ -155,14 +203,15 @@ describe "home page" do
|
|
155
203
|
end
|
156
204
|
```
|
157
205
|
|
158
|
-
|
159
|
-
users like to use extension libraries like
|
206
|
+
The above example uses only standard Rails and RSpec API's, but many
|
207
|
+
RSpec/Rails users like to use extension libraries like
|
160
208
|
[FactoryGirl](https://github.com/thoughtbot/factory_girl) and
|
161
209
|
[Capybara](https://github.com/jnicklas/capybara):
|
162
210
|
|
163
211
|
```ruby
|
164
|
-
require '
|
165
|
-
|
212
|
+
require 'rails_helper'
|
213
|
+
|
214
|
+
RSpec.describe "home page", :type => :request do
|
166
215
|
it "displays the user's username after successful login" do
|
167
216
|
user = FactoryGirl.create(:user, :username => "jdoe", :password => "secret")
|
168
217
|
visit "/login"
|
@@ -180,7 +229,7 @@ which can be encoded into the underlying factory definition without requiring
|
|
180
229
|
changes to this example.
|
181
230
|
|
182
231
|
Among other benefits, Capybara binds the form post to the generated HTML, which
|
183
|
-
means we don't need to specify them separately.
|
232
|
+
means we don't need to specify them separately. Note that Capybara's DSL as
|
184
233
|
shown is, by default, only available in specs in the spec/features directory.
|
185
234
|
For more information, see the [Capybara integration
|
186
235
|
docs](http://rubydoc.info/gems/rspec-rails/file/Capybara.md).
|
@@ -191,15 +240,18 @@ FactoryGirl and Capybara seem to be the most widely used. Whether you choose
|
|
191
240
|
these or other libs, we strongly recommend using something for each of these
|
192
241
|
roles.
|
193
242
|
|
194
|
-
##
|
195
|
-
|
196
|
-
Feature specs live in spec/features, and mix in functionality from the
|
197
|
-
capybara gem.
|
243
|
+
## Feature Specs
|
198
244
|
|
199
245
|
Feature specs test your application from the outside by simulating a browser.
|
200
|
-
capybara is used to manage the
|
246
|
+
[`capybara`](https://github.com/jnicklas/capybara) is used to manage the
|
247
|
+
simulated browser.
|
248
|
+
|
249
|
+
Feature specs default to residing in the `spec/features` folder. Tagging any
|
250
|
+
context with the metadata `:type => :feature` treats it's examples as feature
|
251
|
+
specs.
|
201
252
|
|
202
|
-
|
253
|
+
Feature specs mix in functionality from the capybara gem, thus they require
|
254
|
+
`capybara` to use. To use feature specs, add `capybara` to the `Gemfile`:
|
203
255
|
|
204
256
|
```ruby
|
205
257
|
gem "capybara"
|
@@ -210,23 +262,25 @@ specs](https://www.relishapp.com/rspec/rspec-rails/v/3-0/docs/feature-specs/feat
|
|
210
262
|
|
211
263
|
## View specs
|
212
264
|
|
213
|
-
View specs
|
265
|
+
View specs default to residing in the `spec/views` folder. Tagging any context
|
266
|
+
with the metadata `:type => :view` treats it's examples as view specs.
|
267
|
+
|
268
|
+
View specs mix in `ActionView::TestCase::Behavior`.
|
214
269
|
|
215
270
|
```ruby
|
216
|
-
require '
|
217
|
-
|
271
|
+
require 'rails_helper'
|
272
|
+
|
273
|
+
RSpec.describe "events/index", :type => :view do
|
218
274
|
it "renders _event partial for each event" do
|
219
|
-
assign(:events, [
|
275
|
+
assign(:events, [double(Event), double(Event)])
|
220
276
|
render
|
221
277
|
expect(view).to render_template(:partial => "_event", :count => 2)
|
222
278
|
end
|
223
279
|
end
|
224
280
|
|
225
|
-
describe "events/show" do
|
281
|
+
RSpec.describe "events/show", :type => :view do
|
226
282
|
it "displays the event location" do
|
227
|
-
assign(:event,
|
228
|
-
:location => "Chicago"
|
229
|
-
))
|
283
|
+
assign(:event, Event.new(:location => "Chicago"))
|
230
284
|
render
|
231
285
|
expect(rendered).to include("Chicago")
|
232
286
|
end
|
@@ -234,7 +288,7 @@ end
|
|
234
288
|
```
|
235
289
|
|
236
290
|
View specs infer the controller name and path from the path to the view
|
237
|
-
template. e.g. if the template is
|
291
|
+
template. e.g. if the template is `events/index.html.erb` then:
|
238
292
|
|
239
293
|
```ruby
|
240
294
|
controller.controller_path == "events"
|
@@ -246,23 +300,23 @@ spec'ing a partial that is included across different controllers, you _may_
|
|
246
300
|
need to override these values before rendering the view.
|
247
301
|
|
248
302
|
To provide a layout for the render, you'll need to specify _both_ the template
|
249
|
-
and the layout explicitly.
|
303
|
+
and the layout explicitly. For example:
|
250
304
|
|
251
305
|
```ruby
|
252
306
|
render :template => "events/show", :layout => "layouts/application"
|
253
307
|
```
|
254
308
|
|
255
|
-
|
309
|
+
### `assign(key, val)`
|
256
310
|
|
257
311
|
Use this to assign values to instance variables in the view:
|
258
312
|
|
259
313
|
```ruby
|
260
|
-
assign(:widget,
|
314
|
+
assign(:widget, Widget.new)
|
261
315
|
render
|
262
316
|
```
|
263
317
|
|
264
|
-
The code above assigns `
|
265
|
-
renders the view.
|
318
|
+
The code above assigns `Widget.new` to the `@widget` variable in the view, and
|
319
|
+
then renders the view.
|
266
320
|
|
267
321
|
Note that because view specs mix in `ActionView::TestCase` behavior, any
|
268
322
|
instance variables you set will be transparently propagated into your views
|
@@ -270,7 +324,7 @@ instance variables you set will be transparently propagated into your views
|
|
270
324
|
available in views). For example:
|
271
325
|
|
272
326
|
```ruby
|
273
|
-
@widget =
|
327
|
+
@widget = Widget.new
|
274
328
|
render # @widget is available inside the view
|
275
329
|
```
|
276
330
|
|
@@ -278,17 +332,17 @@ RSpec doesn't officially support this pattern, which only works as a
|
|
278
332
|
side-effect of the inclusion of `ActionView::TestCase`. Be aware that it may be
|
279
333
|
made unavailable in the future.
|
280
334
|
|
281
|
-
|
335
|
+
#### Upgrade note
|
282
336
|
|
283
337
|
```ruby
|
284
338
|
# rspec-rails-1.x
|
285
339
|
assigns[key] = value
|
286
340
|
|
287
|
-
# rspec-rails-2.x
|
341
|
+
# rspec-rails-2.x+
|
288
342
|
assign(key, value)
|
289
343
|
```
|
290
344
|
|
291
|
-
|
345
|
+
### `rendered`
|
292
346
|
|
293
347
|
This represents the rendered view.
|
294
348
|
|
@@ -297,29 +351,32 @@ render
|
|
297
351
|
expect(rendered).to match /Some text expected to appear on the page/
|
298
352
|
```
|
299
353
|
|
300
|
-
|
354
|
+
#### Upgrade note
|
301
355
|
|
302
356
|
```ruby
|
303
357
|
# rspec-rails-1.x
|
304
358
|
render
|
305
359
|
response.should xxx
|
306
360
|
|
307
|
-
# rspec-rails-2.x
|
361
|
+
# rspec-rails-2.x+
|
308
362
|
render
|
309
363
|
rendered.should xxx
|
310
364
|
|
311
|
-
# rspec-rails-2.x with expect syntax
|
365
|
+
# rspec-rails-2.x+ with expect syntax
|
312
366
|
render
|
313
367
|
expect(rendered).to xxx
|
314
368
|
```
|
315
369
|
|
316
|
-
|
370
|
+
## Routing specs
|
317
371
|
|
318
|
-
Routing specs
|
372
|
+
Routing specs default to residing in the `spec/routing` folder. Tagging any
|
373
|
+
context with the metadata `:type => :routing` treats it's examples as routing
|
374
|
+
specs.
|
319
375
|
|
320
376
|
```ruby
|
321
|
-
require '
|
322
|
-
|
377
|
+
require 'rails_helper'
|
378
|
+
|
379
|
+
RSpec.describe "routing to profiles", :type => :routing do
|
323
380
|
it "routes /profile/:username to profile#show for username" do
|
324
381
|
expect(:get => "/profiles/jsmith").to route_to(
|
325
382
|
:controller => "profiles",
|
@@ -336,18 +393,23 @@ end
|
|
336
393
|
|
337
394
|
### Upgrade note
|
338
395
|
|
339
|
-
`route_for` from rspec-rails-1.x is gone. Use `route_to` and `be_routable`
|
396
|
+
`route_for` from rspec-rails-1.x is gone. Use `route_to` and `be_routable`
|
397
|
+
instead.
|
340
398
|
|
341
|
-
|
399
|
+
## Helper specs
|
342
400
|
|
343
|
-
Helper specs
|
401
|
+
Helper specs default to residing in the `spec/helpers` folder. Tagging any
|
402
|
+
context with the metadata `:type => :helper` treats it's examples as helper
|
403
|
+
specs.
|
344
404
|
|
345
|
-
|
346
|
-
|
405
|
+
Helper specs mix in ActionView::TestCase::Behavior. A `helper` object is
|
406
|
+
provided which mixes in the helper module being spec'd, along with
|
407
|
+
`ApplicationHelper` (if present).
|
347
408
|
|
348
409
|
```ruby
|
349
|
-
require '
|
350
|
-
|
410
|
+
require 'rails_helper'
|
411
|
+
|
412
|
+
RSpec.describe EventsHelper, :type => :helper do
|
351
413
|
describe "#link_to_event" do
|
352
414
|
it "displays the title, and formatted date" do
|
353
415
|
event = Event.new("Ruby Kaigi", Date.new(2010, 8, 27))
|
@@ -359,75 +421,78 @@ describe EventsHelper do
|
|
359
421
|
end
|
360
422
|
```
|
361
423
|
|
362
|
-
|
424
|
+
## Matchers
|
363
425
|
|
364
|
-
|
365
|
-
|
426
|
+
Several domain-specific matchers are provided to each of the example group
|
427
|
+
types. Most simply delegate to their equivalent Rails' assertions.
|
366
428
|
|
367
|
-
|
368
|
-
|
369
|
-
|
429
|
+
### `be_a_new`
|
430
|
+
|
431
|
+
- Available in all specs
|
432
|
+
- Primarily intended for controller specs
|
370
433
|
|
371
434
|
```ruby
|
372
435
|
expect(object).to be_a_new(Widget)
|
373
436
|
```
|
374
437
|
|
375
|
-
|
376
438
|
Passes if the object is a `Widget` and returns true for `new_record?`
|
377
439
|
|
378
|
-
|
379
|
-
* Delegates to Rails' assert_template.
|
380
|
-
* Available in request, controller, and view specs.
|
440
|
+
### `render_template`
|
381
441
|
|
382
|
-
|
442
|
+
- Delegates to Rails' `assert_template`
|
443
|
+
- Available in request, controller, and view specs
|
444
|
+
|
445
|
+
In request and controller specs, apply to the `response` object:
|
383
446
|
|
384
447
|
```ruby
|
385
448
|
expect(response).to render_template("new")
|
386
449
|
```
|
387
450
|
|
388
|
-
In view specs, apply to the view object:
|
451
|
+
In view specs, apply to the `view` object:
|
389
452
|
|
390
453
|
```ruby
|
391
454
|
expect(view).to render_template(:partial => "_form", :locals => { :widget => widget } )
|
392
455
|
```
|
393
456
|
|
394
|
-
|
395
|
-
|
396
|
-
|
457
|
+
### `redirect_to`
|
458
|
+
|
459
|
+
- Delegates to `assert_redirect`
|
460
|
+
- Available in request and controller specs
|
397
461
|
|
398
462
|
```ruby
|
399
463
|
expect(response).to redirect_to(widgets_path)
|
400
464
|
```
|
401
465
|
|
402
|
-
|
466
|
+
### `route_to`
|
403
467
|
|
404
|
-
|
405
|
-
|
468
|
+
- Delegates to Rails' `assert_routing`
|
469
|
+
- Available in routing and controller specs
|
406
470
|
|
407
471
|
```ruby
|
408
472
|
expect(:get => "/widgets").to route_to(:controller => "widgets", :action => "index")
|
409
473
|
```
|
410
474
|
|
411
|
-
|
475
|
+
### `be_routable`
|
412
476
|
|
413
477
|
Passes if the path is recognized by Rails' routing. This is primarily intended
|
414
|
-
to be used with `not_to` to specify routes
|
478
|
+
to be used with `not_to` to specify standard CRUD routes which should not be
|
479
|
+
routable.
|
415
480
|
|
416
481
|
```ruby
|
417
482
|
expect(:get => "/widgets/1/edit").not_to be_routable
|
418
483
|
```
|
419
484
|
|
420
|
-
|
485
|
+
### `have_http_status`
|
421
486
|
|
422
|
-
|
423
|
-
|
487
|
+
- Passes if `response` has a matching HTTP status code
|
488
|
+
- The following symbolic status codes are allowed:
|
424
489
|
- `Rack::Utils::SYMBOL_TO_STATUS_CODE`
|
425
490
|
- One of the defined `ActionDispatch::TestResponse` aliases:
|
426
491
|
- `:error`
|
427
492
|
- `:missing`
|
428
493
|
- `:redirect`
|
429
494
|
- `:success`
|
430
|
-
|
495
|
+
- Available in controller, feature, and request specs.
|
431
496
|
|
432
497
|
In controller and request specs, apply to the `response` object:
|
433
498
|
|
@@ -442,15 +507,16 @@ In feature specs, apply to the `page` object:
|
|
442
507
|
expect(page).to have_http_status(:success)
|
443
508
|
```
|
444
509
|
|
445
|
-
|
510
|
+
## `rake` tasks
|
446
511
|
|
447
|
-
|
448
|
-
|
512
|
+
Several rake tasks are provided as a convience for working with RSpec. To run
|
513
|
+
the entire spec suite use `rake spec`. To run a subset of specs use the
|
514
|
+
associated type task, for example `rake spec:models`.
|
449
515
|
|
450
516
|
A full list of the available rake tasks can be seen by running `rake -T | grep
|
451
517
|
spec`.
|
452
518
|
|
453
|
-
|
519
|
+
### Customizing `rake` tasks
|
454
520
|
|
455
521
|
If you want to customize the behavior of `rake spec`, you may [define your own
|
456
522
|
task in the `Rakefile` for your
|
@@ -461,14 +527,14 @@ However, you must first clear the task that rspec-rails defined:
|
|
461
527
|
task("spec").clear
|
462
528
|
```
|
463
529
|
|
464
|
-
|
530
|
+
## Contribute
|
465
531
|
|
466
532
|
See [http://github.com/rspec/rspec-dev](http://github.com/rspec/rspec-dev).
|
467
533
|
|
468
534
|
For `rspec-rails`-specific development information, see
|
469
535
|
[README_DEV](https://github.com/rspec/rspec-rails/blob/master/README_DEV.md).
|
470
536
|
|
471
|
-
|
537
|
+
## Also see
|
472
538
|
|
473
539
|
* [http://github.com/rspec/rspec](http://github.com/rspec/rspec)
|
474
540
|
* [http://github.com/rspec/rspec-core](http://github.com/rspec/rspec-core)
|
@@ -4,9 +4,9 @@ require 'rails_helper'
|
|
4
4
|
RSpec.describe <%= class_name %>Controller, :type => :controller do
|
5
5
|
|
6
6
|
<% for action in actions -%>
|
7
|
-
describe "GET
|
7
|
+
describe "GET <%= action %>" do
|
8
8
|
it "returns http success" do
|
9
|
-
get
|
9
|
+
get :<%= action %>
|
10
10
|
expect(response).to be_success
|
11
11
|
end
|
12
12
|
end
|
@@ -9,7 +9,7 @@ require 'rspec/rails'
|
|
9
9
|
# run as spec files by default. This means that files in spec/support that end
|
10
10
|
# in _spec.rb will both be required and run as specs, causing the specs to be
|
11
11
|
# run twice. It is recommended that you do not name files matching this glob to
|
12
|
-
# end with _spec.rb. You can configure this pattern with
|
12
|
+
# end with _spec.rb. You can configure this pattern with the --pattern
|
13
13
|
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
|
14
14
|
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
15
15
|
|
data/lib/rspec/rails/adapters.rb
CHANGED
@@ -5,7 +5,11 @@ require 'active_support/concern'
|
|
5
5
|
module RSpec
|
6
6
|
module Rails
|
7
7
|
if ::Rails::VERSION::STRING >= '4.1.0'
|
8
|
-
gem
|
8
|
+
if defined?(Kernel.gem)
|
9
|
+
gem 'minitest'
|
10
|
+
else
|
11
|
+
require 'minitest'
|
12
|
+
end
|
9
13
|
require 'minitest/assertions'
|
10
14
|
# Constant aliased to either Minitest or TestUnit, depending on what is
|
11
15
|
# loaded.
|
@@ -120,6 +124,10 @@ module RSpec
|
|
120
124
|
end
|
121
125
|
end
|
122
126
|
|
127
|
+
def initialize
|
128
|
+
@example = nil
|
129
|
+
end
|
130
|
+
|
123
131
|
def method_name
|
124
132
|
@example
|
125
133
|
end
|
data/lib/rspec/rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chelimsky
|
@@ -9,178 +9,171 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain:
|
12
|
-
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
RHNSZzZGbUtjcGdxQ3dOT21zVmlhZjBMUFNVSC9HWVEKM1Rlb3o4UUNhRGJE
|
37
|
-
N0FLc2ZmVDdlRHJuYkhuS3dlTzFYZGVtUkpDOTh1L3lZeG5Hek1TV0tFc24w
|
38
|
-
OWV0QmxaOQo3SDY3azVaM3VmNmNmTFpnVG9XTDZ6U2h6WlkzTnVuNXI3M1lz
|
39
|
-
TmYyL1FaT2U0VVplNHZmR3ZuNmJhdzUzeXM5CjF5SEMxQWNTWXB2aTJkQWJP
|
40
|
-
aUhUNWlRRitrcm00d3NlOEtjdFhnVE5uak1zSEVvR0t1bEpTMi9zWmw5MGpj
|
41
|
-
Q3oKbXVBPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
42
|
-
date: 2014-06-02 00:00:00.000000000 Z
|
12
|
+
- |
|
13
|
+
-----BEGIN CERTIFICATE-----
|
14
|
+
MIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQUFADBGMRIwEAYDVQQDDAlyc3Bl
|
15
|
+
Yy1kZXYxGzAZBgoJkiaJk/IsZAEZFgtnb29nbGVnb3VwczETMBEGCgmSJomT8ixk
|
16
|
+
ARkWA2NvbTAeFw0xMzExMDcxOTQyNTlaFw0xNDExMDcxOTQyNTlaMEYxEjAQBgNV
|
17
|
+
BAMMCXJzcGVjLWRldjEbMBkGCgmSJomT8ixkARkWC2dvb2dsZWdvdXBzMRMwEQYK
|
18
|
+
CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
19
|
+
nhCeZouDLXWO55no+EdZNCtjXjfJQ1X9TbPcvBDD29OypIUce2h/VdKXB2gI7ZHs
|
20
|
+
F5NkPggslTErGFmWAtIiur7u943RVqHOsyoIsy065F9fCtrykkA+22elvTDha4Iz
|
21
|
+
RUCvuhQ3klatYk4jF+cGt1jNONNVdLOiy0bMynvcM7hoVQ2AomwGs+cEOWQ/4dkD
|
22
|
+
JcNV3qfzF5QBcTD2372XNM53b25nYVQSX2KH5FF7BhlKyov33bOm2gA9M+mWIujW
|
23
|
+
qgkyxVlfrlE+ZBgV3wXn1Cojg1LpTq35yOArgwioyrwwlZZJR9joN9s/nDklfr5A
|
24
|
+
+dyETjFc6cmEPWZrt2cJBQIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQD
|
25
|
+
AgSwMB0GA1UdDgQWBBSW+WD7hn1swJ1A7i8tbuFeuNCJCjAkBgNVHREEHTAbgRly
|
26
|
+
c3BlYy1kZXZAZ29vZ2xlZ291cHMuY29tMCQGA1UdEgQdMBuBGXJzcGVjLWRldkBn
|
27
|
+
b29nbGVnb3Vwcy5jb20wDQYJKoZIhvcNAQEFBQADggEBAH27jAZ8sD7vnXupj6Y+
|
28
|
+
BaBdfHtCkFaslLJ0aKuMDIVXwYuKfqoW15cZPDLmSIEBuQFM3lw6d/hEEL4Uo2jZ
|
29
|
+
FvtmH5OxifPDzFyUtCL4yp6qgNe/Xf6sDsRg6FmKcpgqCwNOmsViaf0LPSUH/GYQ
|
30
|
+
3Teoz8QCaDbD7AKsffT7eDrnbHnKweO1XdemRJC98u/yYxnGzMSWKEsn09etBlZ9
|
31
|
+
7H67k5Z3uf6cfLZgToWL6zShzZY3Nun5r73YsNf2/QZOe4UZe4vfGvn6baw53ys9
|
32
|
+
1yHC1AcSYpvi2dAbOiHT5iQF+krm4wse8KctXgTNnjMsHEoGKulJS2/sZl90jcCz
|
33
|
+
muA=
|
34
|
+
-----END CERTIFICATE-----
|
35
|
+
date: 2014-07-21 00:00:00.000000000 Z
|
43
36
|
dependencies:
|
44
37
|
- !ruby/object:Gem::Dependency
|
45
38
|
name: activesupport
|
46
39
|
requirement: !ruby/object:Gem::Requirement
|
47
40
|
requirements:
|
48
|
-
- -
|
41
|
+
- - ">="
|
49
42
|
- !ruby/object:Gem::Version
|
50
43
|
version: '3.0'
|
51
44
|
type: :runtime
|
52
45
|
prerelease: false
|
53
46
|
version_requirements: !ruby/object:Gem::Requirement
|
54
47
|
requirements:
|
55
|
-
- -
|
48
|
+
- - ">="
|
56
49
|
- !ruby/object:Gem::Version
|
57
50
|
version: '3.0'
|
58
51
|
- !ruby/object:Gem::Dependency
|
59
52
|
name: actionpack
|
60
53
|
requirement: !ruby/object:Gem::Requirement
|
61
54
|
requirements:
|
62
|
-
- -
|
55
|
+
- - ">="
|
63
56
|
- !ruby/object:Gem::Version
|
64
57
|
version: '3.0'
|
65
58
|
type: :runtime
|
66
59
|
prerelease: false
|
67
60
|
version_requirements: !ruby/object:Gem::Requirement
|
68
61
|
requirements:
|
69
|
-
- -
|
62
|
+
- - ">="
|
70
63
|
- !ruby/object:Gem::Version
|
71
64
|
version: '3.0'
|
72
65
|
- !ruby/object:Gem::Dependency
|
73
66
|
name: railties
|
74
67
|
requirement: !ruby/object:Gem::Requirement
|
75
68
|
requirements:
|
76
|
-
- -
|
69
|
+
- - ">="
|
77
70
|
- !ruby/object:Gem::Version
|
78
71
|
version: '3.0'
|
79
72
|
type: :runtime
|
80
73
|
prerelease: false
|
81
74
|
version_requirements: !ruby/object:Gem::Requirement
|
82
75
|
requirements:
|
83
|
-
- -
|
76
|
+
- - ">="
|
84
77
|
- !ruby/object:Gem::Version
|
85
78
|
version: '3.0'
|
86
79
|
- !ruby/object:Gem::Dependency
|
87
80
|
name: rspec-core
|
88
81
|
requirement: !ruby/object:Gem::Requirement
|
89
82
|
requirements:
|
90
|
-
- - ~>
|
83
|
+
- - "~>"
|
91
84
|
- !ruby/object:Gem::Version
|
92
85
|
version: 3.0.0
|
93
86
|
type: :runtime
|
94
87
|
prerelease: false
|
95
88
|
version_requirements: !ruby/object:Gem::Requirement
|
96
89
|
requirements:
|
97
|
-
- - ~>
|
90
|
+
- - "~>"
|
98
91
|
- !ruby/object:Gem::Version
|
99
92
|
version: 3.0.0
|
100
93
|
- !ruby/object:Gem::Dependency
|
101
94
|
name: rspec-expectations
|
102
95
|
requirement: !ruby/object:Gem::Requirement
|
103
96
|
requirements:
|
104
|
-
- - ~>
|
97
|
+
- - "~>"
|
105
98
|
- !ruby/object:Gem::Version
|
106
99
|
version: 3.0.0
|
107
100
|
type: :runtime
|
108
101
|
prerelease: false
|
109
102
|
version_requirements: !ruby/object:Gem::Requirement
|
110
103
|
requirements:
|
111
|
-
- - ~>
|
104
|
+
- - "~>"
|
112
105
|
- !ruby/object:Gem::Version
|
113
106
|
version: 3.0.0
|
114
107
|
- !ruby/object:Gem::Dependency
|
115
108
|
name: rspec-mocks
|
116
109
|
requirement: !ruby/object:Gem::Requirement
|
117
110
|
requirements:
|
118
|
-
- - ~>
|
111
|
+
- - "~>"
|
119
112
|
- !ruby/object:Gem::Version
|
120
113
|
version: 3.0.0
|
121
114
|
type: :runtime
|
122
115
|
prerelease: false
|
123
116
|
version_requirements: !ruby/object:Gem::Requirement
|
124
117
|
requirements:
|
125
|
-
- - ~>
|
118
|
+
- - "~>"
|
126
119
|
- !ruby/object:Gem::Version
|
127
120
|
version: 3.0.0
|
128
121
|
- !ruby/object:Gem::Dependency
|
129
122
|
name: rspec-support
|
130
123
|
requirement: !ruby/object:Gem::Requirement
|
131
124
|
requirements:
|
132
|
-
- - ~>
|
125
|
+
- - "~>"
|
133
126
|
- !ruby/object:Gem::Version
|
134
127
|
version: 3.0.0
|
135
128
|
type: :runtime
|
136
129
|
prerelease: false
|
137
130
|
version_requirements: !ruby/object:Gem::Requirement
|
138
131
|
requirements:
|
139
|
-
- - ~>
|
132
|
+
- - "~>"
|
140
133
|
- !ruby/object:Gem::Version
|
141
134
|
version: 3.0.0
|
142
135
|
- !ruby/object:Gem::Dependency
|
143
136
|
name: rake
|
144
137
|
requirement: !ruby/object:Gem::Requirement
|
145
138
|
requirements:
|
146
|
-
- - ~>
|
139
|
+
- - "~>"
|
147
140
|
- !ruby/object:Gem::Version
|
148
141
|
version: 10.0.0
|
149
142
|
type: :development
|
150
143
|
prerelease: false
|
151
144
|
version_requirements: !ruby/object:Gem::Requirement
|
152
145
|
requirements:
|
153
|
-
- - ~>
|
146
|
+
- - "~>"
|
154
147
|
- !ruby/object:Gem::Version
|
155
148
|
version: 10.0.0
|
156
149
|
- !ruby/object:Gem::Dependency
|
157
150
|
name: cucumber
|
158
151
|
requirement: !ruby/object:Gem::Requirement
|
159
152
|
requirements:
|
160
|
-
- - ~>
|
153
|
+
- - "~>"
|
161
154
|
- !ruby/object:Gem::Version
|
162
155
|
version: 1.3.5
|
163
156
|
type: :development
|
164
157
|
prerelease: false
|
165
158
|
version_requirements: !ruby/object:Gem::Requirement
|
166
159
|
requirements:
|
167
|
-
- - ~>
|
160
|
+
- - "~>"
|
168
161
|
- !ruby/object:Gem::Version
|
169
162
|
version: 1.3.5
|
170
163
|
- !ruby/object:Gem::Dependency
|
171
164
|
name: aruba
|
172
165
|
requirement: !ruby/object:Gem::Requirement
|
173
166
|
requirements:
|
174
|
-
- - ~>
|
167
|
+
- - "~>"
|
175
168
|
- !ruby/object:Gem::Version
|
176
|
-
version: 0.4
|
169
|
+
version: 0.5.4
|
177
170
|
type: :development
|
178
171
|
prerelease: false
|
179
172
|
version_requirements: !ruby/object:Gem::Requirement
|
180
173
|
requirements:
|
181
|
-
- - ~>
|
174
|
+
- - "~>"
|
182
175
|
- !ruby/object:Gem::Version
|
183
|
-
version: 0.4
|
176
|
+
version: 0.5.4
|
184
177
|
- !ruby/object:Gem::Dependency
|
185
178
|
name: ammeter
|
186
179
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,6 +194,12 @@ executables: []
|
|
201
194
|
extensions: []
|
202
195
|
extra_rdoc_files: []
|
203
196
|
files:
|
197
|
+
- ".document"
|
198
|
+
- ".yardopts"
|
199
|
+
- Capybara.md
|
200
|
+
- Changelog.md
|
201
|
+
- License.txt
|
202
|
+
- README.md
|
204
203
|
- lib/generators/rspec.rb
|
205
204
|
- lib/generators/rspec/controller/controller_generator.rb
|
206
205
|
- lib/generators/rspec/controller/templates/controller_spec.rb
|
@@ -261,36 +260,30 @@ files:
|
|
261
260
|
- lib/rspec/rails/version.rb
|
262
261
|
- lib/rspec/rails/view_assigns.rb
|
263
262
|
- lib/rspec/rails/view_rendering.rb
|
264
|
-
- README.md
|
265
|
-
- License.txt
|
266
|
-
- Changelog.md
|
267
|
-
- Capybara.md
|
268
|
-
- .yardopts
|
269
|
-
- .document
|
270
263
|
homepage: http://github.com/rspec/rspec-rails
|
271
264
|
licenses:
|
272
265
|
- MIT
|
273
266
|
metadata: {}
|
274
267
|
post_install_message:
|
275
268
|
rdoc_options:
|
276
|
-
- --charset=UTF-8
|
269
|
+
- "--charset=UTF-8"
|
277
270
|
require_paths:
|
278
271
|
- lib
|
279
272
|
required_ruby_version: !ruby/object:Gem::Requirement
|
280
273
|
requirements:
|
281
|
-
- -
|
274
|
+
- - ">="
|
282
275
|
- !ruby/object:Gem::Version
|
283
276
|
version: '0'
|
284
277
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
285
278
|
requirements:
|
286
|
-
- -
|
279
|
+
- - ">="
|
287
280
|
- !ruby/object:Gem::Version
|
288
281
|
version: '0'
|
289
282
|
requirements: []
|
290
283
|
rubyforge_project: rspec
|
291
|
-
rubygems_version: 2.
|
284
|
+
rubygems_version: 2.2.2
|
292
285
|
signing_key:
|
293
286
|
specification_version: 4
|
294
|
-
summary: rspec-rails-3.0.
|
287
|
+
summary: rspec-rails-3.0.2
|
295
288
|
test_files: []
|
296
289
|
has_rdoc:
|
metadata.gz.sig
CHANGED
Binary file
|