我不得不说我对 Ruby 和 RSpec 都是新手。无论如何,我完成了一个 RSpec 脚本,但在重构后它失败了。这是原始工作版本:
describe Site do
browser = Watir::Browser.new :ie
site = Site.new(browser, "http://localhost:8080/site")
it "can navigate to any page at the site" do
site.pages_names.each do |page_name|
site.goto(page_name)
site.actual_page.name.should eq page_name
end
end
browser.close
end
这是修改后的版本 - 我想报告测试期间访问的所有页面:
describe Site do
browser = Watir::Browser.new :ie
site = Site.new(browser, "http://localhost:8080/site")
site.pages_names.each do |page_name|
it "can navigate to #{page_name}" do
site.goto(page_name)
site.actual_page.name.should eq page_name
end
end
browser.close
end
后一种情况的问题是,在与“it”方法关联的代码块中,站点被评估为 nil。但是当我这样做时:
...
s = site
it "can navigate to #{page_name}" do
s.goto(page_name)
s.actual_page.name.should eq page_name
end
...
nil 问题消失了,但测试失败,原因是“浏览器已关闭”显然我缺少一些非常基本的 Ruby 知识——因为浏览器引用在修改后的脚本中无法正常工作。我哪里做错了?应该应用什么重构来完成这项工作?谢谢你的帮助!