0

私はプロジェクトの作成をテストしています(rspec統合テストを使用)。なぜテストで作成するように指示したプロジェクトが見つからないのか疑問に思っています...これが私のコードです

  1 require 'spec_helper'
  2 
  3 describe "Projects" do
  4   describe "create project" do
  5 
  6     before :each do
  8       @valid_project = { :name => 'Myproject', :description => 'project description' }
  9     end
 10 
 11     it "should create and redirect to a new project" do
 12       lambda do
 13         visit root_path
 14         click_link 'new project'        
 15         fill_in :name, :with => @valid_project[:name]
 16         fill_in :description, :with => @valid_project[:description] 
 17         click_button 'Create'
 18         current_path.should == project_path(Project.find_by_name!(@valid_project[:name]))
 19         page.should have_content 'Project has been created'
 20 
 21         #in adition, all these don't work and I don't know why...
 22 
 23         #response.should render_template :new
 24         #page.should have_content 'Myproject'
 25         #response.should have_selector('h1', :content => 'Myproject')
 26 
 27       end.should change(Project, :count).by(1)
 28     end
 29   end
 30 end

この行18は、次のエラーを返します。

ActiveRecord :: RecordNotFound:名前=Myprojectのプロジェクトが見つかりませんでした

理由がわかりません...上記のコードのコメントには、機能しないテストがいくつかあります。また、理由もわかりません...助けてくれてありがとう。

4

1 に答える 1

1

これは、[作成]ボタンのアクションが何らかの理由で失敗したため、レコードが作成されなかったことを意味している可能性があります。

挿入してみてください

save_and_open_page

click_button 'Create'

ブラウザでページが開き、ページの現在の状態が表示されます。

于 2012-04-25T22:40:26.180 に答える