1

私はこれをやろうとしています:

私のテストは次のとおりです。

describe "User pages" do

subject { page }

describe "edit" do
  let(:user) { FactoryGirl.create(:user) }
  before do
    log_in user 
    #visit edit_user_path(user) <-- did not work
  end

describe "page" do
  it "should render edit page" do
    get :edit, :id => user.id
    should have_selector('h1',    text: "Update")
    should have_selector('h2',    text: user.username)
    should have_selector('title', text: "Edit user")
  end
end

describe "with invalid information" do
  before { click_button "Save changes" }
  it { should have_content('error') }
end

終わり

追加しようとしましget :edit, :id => user.idたが、例外がスローされます。

Failure/Error: get :edit, :id => user.id
 ArgumentError:
   bad argument (expected URI object or URI string)

他に足りないものはありますか?

4

3 に答える 3

1

1) テスト ファイルに次のようなブロックがあることを確認します。

 describe UsersController do
   # your tests here
 end

2) get をこのように書き直してみてください

 it "should render edit page" do
    get :edit, :id => user.to_param
    should have_selector('h1',    text: "Update")
    # ...
 end
于 2012-11-06T12:13:22.837 に答える
0

これを試して

describe "page" do
  it "should render edit page" do
    p = FactoryGirl.create(:user)
    get :edit, :id => p.id
    should have_selector('h1',    text: "Update")
    should have_selector('h2',    text: user.username)
    should have_selector('title', text: "Edit user")
  end
end
于 2012-11-06T09:53:47.057 に答える
0

私はこれをやってしまった:

visit edit_user_path(user.id) 

どの方法 (取得と訪問) が優先されるかについては、私はよくわかりません。

于 2012-11-07T04:24:12.227 に答える