What's changed

spec_server has been removed

spec_server was deprecated in 1.2.7 and has now been removed. Admittedly,
this was a short deprecation cycle, but spec server never quite worked
right in all situations and spork is a great solution that you can use
today! This is all you need to do:

[sudo] gem install spork
cd path/to/project
spork --bootsrap

Now open up spec/spec_helper.rb and follow the directions at the top.
You'll be up and running in no time.

Upgrade to 1.2.0-1.2.6

What's changed

Supported Rails Versions

update generated files

Be sure to run “script/generate rspec” and allow the following files to be
overwritten:

lib/tasks/rspec.rake

script/spec

script/spec_server

controller.use_rails_error_handling! is deprecated

Use rescue_action_in_public! instead. It comes directly from rails
and does exactly the same thing

route_for

After a change to edge rails broke our monkey-patched route_for
method, I decided to just delegate to rails' assert_generates
method. For most cases, this will not present a problem, but for some it
might. You'll know if you upgrade and see any newly failing,
route-related examples. Here are the things that you might need to change.

Controller/template isolation

Even though controller specs do not render views by default (use
integrate_views to get them to render views), the way this works
has changed in this version.

It used to be that the view template need not even exist, but due to
changes in rails it became much more difficult to manage that for all the
different versions of rails that rspec-rails supports. So now the template
must exist, but it still won't be rendered unless you declare
integrate_views.

What's new

render no longer requires a path

The render() method in view specs will infer the path from the
first argument passed to describe().

describe "players/show" do
it "does something" do
render
response.should have_tag("....")
end
end

routing specs live in spec/routing

script/generate rspec_scaffold now generates its routing spec in
spec/routing/.

bypass_rescue

Added a new bypass_rescue() declaration for controller specs. Use
this when you want to specify that an error is raised by an action, even if
that error is later captured by a rescue_from() declaration.

describe AccountController do
describe "GET @account" do
context "requested by anonymous user" do
it "denies access" do
bypass_rescue
lambda do
get :show, :id => "37"
end.should raise_error(AccessDenied)
end
end
end
end