【发布时间】:2016-07-12 22:09:52
【问题描述】:
我对我的 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
对于其他部分,我不知道从哪里开始。
【问题讨论】:
-
这是一个相当不错的场景,但我想大多数人会告诉你每次测试一次坚持一个场景。如果您这样做,事情将不会相互关联,我很确定您会了解如何测试您想到的特定功能。
标签: ruby-on-rails ruby pagination