我是新來測試多種可能的結果,所以忍耐一下:)水豚/ RSpec的 - 測試與have_content
我想測試一個網頁上的隨機內容。例如,讓我們測試顯示內容'foo'或'bar'的頁面。
喜歡的東西下面就是我想要達到
page.should (have_content('foo') || have_content('bar'))
任何想法?
我是新來測試多種可能的結果,所以忍耐一下:)水豚/ RSpec的 - 測試與have_content
我想測試一個網頁上的隨機內容。例如,讓我們測試顯示內容'foo'或'bar'的頁面。
喜歡的東西下面就是我想要達到
page.should (have_content('foo') || have_content('bar'))
任何想法?
我不知道任何準備好爲您使用Mather。但你可以自己烘烤。
使用satisfy:
page.should satisfy {|page| page.has_content?('foo') or page.has_content?('bar')}
def have_foo_or_bar
simple_matcher("check content has foo or bar") { |page| page.has_content?('foo') or page.has_content?('bar') }
end
describe page
it "should have foo or bar" do
page.should have_foo_or_bar
end
end
編輯:has_content
接受正則表達式,所以你可以檢查page.should have_content(/foo|bar/)
使用滿意工作。無法讓simple_matcher正常工作,因爲它正在吐出NoMethodErrors。根據我的理解,該方法已被棄用?本來希望使用simple_matcher作爲自定義錯誤消息。無論如何,感謝您的幫助! – Viet 2012-02-02 23:24:33
對,我給你的鏈接已經過時了。對不起:(不知道爲什麼谷歌顯示在頂部,應該更新它:)當前版本是2.8 [RSpec期望2.8](https://www.relishapp.com/rspec/rspec-expectations)。與simple_matcher最接近的是[define matcher](https://www.relishapp.com/rspec/rspec-expectations/docs/custom-matchers/define-matcher)。 – 2012-02-03 04:58:00
我有同樣的問題,但實現這是可能的更容易&增加一個if語句到你的規範。
it 'can complete my incredible form' do
visit '/testing_path'
#...dostuff...
if object_im_testing.contains_my_condition?
current_path.should eq('/special_condition_url')
else
current_path.should eq('/normal_condition_url')
end
end
希望這有助於其他視角。最簡單的解決方案通常是最好的。
恕我直言,你的問題的標題是有點誤導。它與統計無關。對?稱之爲「測試複雜條件」或其他(我在製作標題時不好)。想想其他人在尋找你的問題的答案。 – 2012-02-02 21:49:14
同意。希望新的頭銜足夠。 – Viet 2012-02-03 02:57:23