2009-08-20 43 views
3

我正在開發一款導軌應用程序,以自學教授BDD並進行一般測試。使用黃瓜+ webrat + rspec,在railcasts錄影之後。 在這個應用程序測驗has_many問題。我正在測試的視圖應該使問題呈現兩次而不是連續的。 (這裏不測試連續性) 我有一個黃瓜方案旨在檢查該黃瓜+網頁:檢查文字出現兩次

Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident" 
When I go to the experiment page for quiz titled "Pearl Jam" 
Then I should see "Corduroy" twice 
And I should see "Dissident" twice 

我的步驟是這樣定義的:

Then /^I should see "([^\"]*)" twice$/ do |text| 
    regexp = Regexp.new(text + "(.+)" + text) 
    response.should contain(regexp) 
end 

我測試用的工具正則表達式,它似乎工作,但在黃瓜上測試失敗。
我搜索了一些文檔,但webrat的唯一文檔是API文檔;我無法獲得顯示爲文本的響應。 有什麼建議嗎?

回答

6

你有沒有試過迴應。

Then /^I should see "([^\"]*)" twice$/ do |text| 
    regexp = Regexp.new(text + "(.+)" + text) 
    response.body.should contain(regexp) 
end 
+0

完美答案。謝謝 – nutsmuggler 2009-08-29 16:16:45

+0

當你陷入代碼時,很容易錯過這些東西! – Damian 2009-08-29 18:30:42

1

我不得不修改達米安的回答讓這個跨線工作。

Then /^I should see "([^\"]*)" twice$/ do |text| 
    regexp = Regexp.new(text + "(.+)" + text, Regexp::MULTILINE) 
    response.body.should contain(regexp) 
end