我對我的Ruby on Rails代碼進行了以下集成測試,該代碼檢查以確保所有學校都存在於頁面上,然後將它們過濾爲僅具有US /加拿大的學校,並再次確保正確的學校在網頁上。分頁集成測試(Ruby on Rails)
test "Can view and search schools" do
visit logout_path
visit schools_path
School.all.each do |school|
page.must_have_content(school.name)
end
find(:xpath, '//*[@name="filter[USA]"]/..').click
School.all.each do |school|
page.must_have_content(school.name) if school.country == 'Canada'
page.wont_have_content(school.name) if school.country == 'USA'
end
find(:xpath, '//*[@name="filter[USA]"]/..').click
School.all.each do |school|
page.must_have_content(school.name)
end
find(:xpath, '//*[@name="filter[Canada]"]/..').click
School.all.each do |school|
page.wont_have_content(school.name) if school.country == 'Canada'
page.must_have_content(school.name) if school.country == 'USA'
end
end
的問題是,我現在已經分頁學校,所以所有的學校都不能在同一網頁上,使測試案例失敗。我需要修改集成測試,以便通過測試用例,即使學校現在分佈在不同的頁面上,每頁有9所學校。我嘗試了以下第一部分的測試無濟於事:
visit logout_path
school_found = 0
per_page = 9
visit schools_path
School.all.each do |school|
page.must_have_content(school.name)
school_found += 1
if (school_found == per_page)
click_on('Next ›')
end
end
對於其他部分我不知道從哪裏開始。
這是你到達那裏的一個場景,但我想大多數人會告訴你一次只能在一個測試中堅持一個場景。如果你這樣做了,事情就不會彼此相關,我很確定你的想法會明白你如何測試你想要的特定功能。 – unused