2012-06-11 56 views
3

我開始探索BDD和黃瓜。 所以我想檢查一下我的頁面是否顯示了我擁有的兩篇文章的內容。 這是我使用的檢查步驟;如果內容有:檢查黃瓜測試網頁的內容

Then /^I should see "([^"]*)"$/ do |desc| 
page.should have_content desc 

expected = Article.find_by_description(desc) 
page.should have_content(expected.navision_code) 
page.should have_content(expected.category.name) 
end 

通常這應該做的我猜的伎倆,但是當我運行測試,我得到這個錯誤信息:

expected there to be content "---\n- tenetur\n" in "Alfa Paints Order System\n\n\n\nAlfa Paints\n\n\n\nSeth abernathy, admin\n\n\nVerander paswoord\n\nLogout\n\n\n\n\n\n\n\n\n\n\n\nAlfa Paints\nordering system\n\n\n\n\n\nOverzicht van alle artikelen\n\n\n\nBack\n\n\n\n\n\n\nProduct ID\nBeschrijving\nCategorie\n3001\nPaint\n---\n- tenetur\n\n3002\nBrush\n---\n- tenetur\n\n\n\n\n\n\n\n\n\n\n 
(RSpec::Expectations::ExpectationNotMetError) 
./features/step_definitions/admin_articles_steps.rb:41:in `/^I should see "([^"]*)"$/' 
features/admin_articles.feature:10:in `Then I should see "Paint"' 

正如你所看到的,我期望繪畫和錯誤信息顯示內容已經在內部繪製。 但不知何故,黃瓜不認識它。

我是新來的黃瓜,我可能錯過了一些東西,但也許有人可以幫我在路上。

+1

它看起來像水豚不換行發揮好。你可以嘗試用下面這樣的東西來解決它們:http://praktikanten.brueckenschlaeger.org/2011/11/15/working-in-cucumber-with-new-lines-and-have_content – DVG

+0

我不認爲你需要確定「整個」文章是否有「成功」的測試,可能是檢查文章中的隨機線? – omarvelous

回答

0

您一次測試三件事情,所以很難判斷哪一項預期失敗。作爲第一步,嘗試評論一切,但第一個期望只是爲了確保它在你想法的地方失敗。

Then /^I should see "([^"]*)"$/ do |desc| 
page.should have_content desc 

// expected = Article.find_by_description(desc) 
// page.should have_content(expected.navision_code) 
// page.should have_content(expected.category.name) 
end 

如果仍然有同樣的問題,加上調試器,這樣你可以實驗,看看什麼是從測試環境中的想法。如果你打算做很多黃瓜測試,這是一項值得開發的技巧。

Then /^I should see "([^"]*)"$/ do |desc| 
debugger 
page.should have_content desc 
end 

從調試控制檯,請參閱遞減變量和頁面的樣子:

p desc 
p page.content