RSPEC测试未运行,结束错误

时间:2011-05-23 06:59:20

标签: ruby-on-rails rspec

由于结束错误,此代码未运行。我无法弄清楚出了什么问题。

require 'spec_helper'

describe UsersController do
  render_views

  describe "GET 'show'" do

    before(:each) do
      @user = Factory(:user)
    end 
    it "should be succesful" do
      get :show, :id => @user
      response.should be_success
    end

    it "should find the right user" do
      get :show, :id => @user
      assigns(:user).should == @user 
    end 
    it "should include the user's name" do
      get :show, :id => @user
      response.should have_selector("h1", :content => @user.name)
    end 
  end



  describe "GET 'new'" do
    it "should be successful" do
      get 'new'
      response.should be_success
    end
  end


  describe "POST 'create'" do

     describe "failure" do

       before(:each) do
         @attr = { :name => "", :email => "", :password => "",
                   :password_confirmation => "" }
       end

       it "should have the right title" do
         post :create, :user => @attr
         response.should have_selector('title', :content => "Sign up")
       end

       it "should render the 'new' page" do
         post :create, :user => @attr
         response.should render_template('new')
       end



       it "should not create a user" do
         lambda do
           post :create, :user => @attr
         end.should_not change(User, :count)
       end
     end

     describe "success" do

       before(:each) do
         @attr = { :name => "New User", :email => "user@example.com",
                   :password => "foobar", :password_confirmation => "foobar" }
       end

       it "should create a user" do
         lambda do
           post :create, :user => @attr
         end.should change(User, :count).by(1)
       end

       it "should redirect to the user show page" do
          post :create, :user => @attr
         response.should redirect_to(user_path(assigns(:user)))
       end

        it "should have a welcome message" do
         post :create, :user => @attr
         flash[:success].should =~ /welcome to the sample app/i
       end

       it "should sign the user in" do
         post :create, :user => @attr
         controller.should be_signed_in
       end
     end
 end     
      describe "GET 'edit'" do

        before(:each) do
          @user = Factory(:user)
          test_sign_in(@user)
        end 

        it "should be successful" do
          get :edit, :id => @user
          response.should be_success
        end 

        it "should have the right title" do
          get :edit, :id => @user
          response.should have_selector("a", :href => gravatar_url, :content =>        "change")
    end 

    it "should have a link to change the Gravatar" do
      get :edit, :id => @user
    response.should have_selector('a', :href => 'http://gravatar.com/emails',
                                               :content => "change")
  end 

    describe "PUT 'update'" do

      before(:each) do
        @user = Factory(:user)
        test_sign_in(@user)
      end

      describe "failure" do

        before(:each) do
          @attr = { :email => "", :name => "", :password => "",
                    :password_confirmation => "" }
        end

        it "should render the 'edit' page" do
          put :update, :id => @user, :user => @attr
          response.should render_template('edit')
        end

        it "should have the right title" do
          put :update, :id => @user, :user => @attr
          response.should have_selector("title", :content => "Edit user")
        end
      end

      describe "success" do

        before(:each) do
          @attr = { :name => "New Name", :email => "user@example.org",
                    :password => "barbaz", :password_confirmation => "barbaz" }
        end

        it "should change the user's attributes" do
          put :update, :id => @user, :user => @attr
          @user.reload
          @user.name.should  == @attr[:name]
          @user.email.should == @attr[:email]
        end

        it "should redirect to the user show page" do
          put :update, :id => @user, :user => @attr
          response.should redirect_to(user_path(@user))
        end

        it "should have a flash message" do
          put :update, :id => @user, :user => @attr
          flash[:success].should =~ /updated/
        end
      end
    end
  end

1 个答案:

答案 0 :(得分:0)

在群组

之后,似乎缺少结束
describe "GET 'edit'" do

你可以通过一次评论一个块来解决这个问题,直到你不再出现语法错误。