您好我正在使用带有rspec的watir并遇到以下代码块的问题:
我无法理解我做错了什么。我得到的确切错误是“语法错误,意外的$ end,期待keyword_end @ b.text.include? “方舟©1”
describe "Copyright statement" do
it "should exist" do
@b.text.include? "Ark © 1"
end
end
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
我认为你的缩进不在第一端需要另一个空间来排队。
describe "Copyright statement" do
it "should exist" do
@b.text.include? "Ark © 1"
end
end
一旦你纠正了这个,你应该能够看到@ChuckvanderLinden和我认为是真正的问题 - 你缺少并结束了,但是没有看到文件的其余部分我们无法确定。
我确实从Dave Thomas那里得到了这个提示,
http://pragdave.blogs.pragprog.com/pragdave/2008/12/ruby-19-can-check-your-indentation.html
如果使用-w标志运行该文件,它将使您更好地了解问题以及代码中的确切位置。
ruby -w samplefile.rb
这将为您提供类似于以下内容的输出:
t.rb:5: warning: mismatched indentations at 'end' with 'if' at 3
t.rb:9: warning: mismatched indentations at 'end' with 'def' at 2
t.rb:10: syntax error, unexpected $end, expecting keyword_end
更容易找到错误,
答案 1 :(得分:1)
@SteveRobillard已经在他的回复中解决了缺失的结束错误消息,但是你在如何尝试在那里使用rspec还有另外一个大问题。问题是你并没有真正对.include的结果做任何事情?方法,因为没有。应该有。您的代码正在执行该方法,但只是有效地抛出返回到位桶的“true”或“false”。该测试永远不会失败,因为您缺少任何类型的验证。我认为这条线需要更接近
describe "Copyright statement" do
it "should exist" do
@b.text.should include "Ark © 1"
end
end
纠正可能无法解决您遗漏的最终问题,但如果没有这样的话,您的“测试”实际上并没有测试任何内容。
此外,如果是我,我不仅希望看到版权在html的某个地方,而且在特定的地方,例如页脚,通常在某种容器中,例如div。如果该div的id为'footer',那么代码的那部分将是这样的
it "should be found within the footer" do
@browser.div(:id => 'footer').text.should include 'copyright © Yoyodyne 1984'
end
查看与Watir一起使用的rspec的好方法是查看watir本身的rspec文件,例如div元素的规范以及它应该做的所有测试都在https://github.com/watir/watirspec/blob/master/div_spec.rb
答案 2 :(得分:1)
我在网上找到了一个解决方案,同时搜索错误“无效的多字节字符(US-ASCII)”
将此行添加到顶部有助于版权声明!
# encoding: UTF-8
它只是文件顶部的一个简单注释,但它解决了版权特征和Rspec / Ruby 1.9的问题。
感谢大家的所有帮助和支持。我真的很感激它!