我对我的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