2012-04-25 151 views
0

我測試的項目創建(使用RSpec集成測試),我想知道爲什麼測試不會發現這個項目我只是告訴它來創建...這裏是我的代碼集成測試新記錄使用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: Couldn't find Project with name = Myproject

我不明白爲什麼...此外在代碼中的註釋以上是一些更多的測試,不工作,並再次,我不知道爲什麼。 .. 感謝您的任何幫助。

回答

1

這可能意味着創建按鈕操作以某種方式失敗,因此記錄沒有被創建。

嘗試插入

save_and_open_page 

click_button 'Create' 

這將在瀏覽器中打開頁面,並顯示你的頁面的當前狀態。

+0

順便說一句,當我手動創建項目,一切順利,創建按鈕創建... – oFca 2012-04-25 22:56:54

+0

好吧,只是發現這個fill_in:name實際上是填充:描述。爲什麼這個世界會發生? – oFca 2012-04-25 23:06:34

+0

你可以發佈這個測試的觀點嗎?它按名稱,ID或標籤查找字段。 – 2012-04-25 23:09:17