嗨,我正在使用带有 rspec 的 watir,并且遇到了以下代码块的问题:
我无法理解我做错了什么。我得到的确切错误是“语法错误,意外$end,期待keyword_end @b.text.include?”Ark © 1
describe "Copyright statement" do
it "should exist" do
@b.text.include? "Ark © 1"
end
end
任何帮助,将不胜感激。谢谢。
嗨,我正在使用带有 rspec 的 watir,并且遇到了以下代码块的问题:
我无法理解我做错了什么。我得到的确切错误是“语法错误,意外$end,期待keyword_end @b.text.include?”Ark © 1
describe "Copyright statement" do
it "should exist" do
@b.text.include? "Ark © 1"
end
end
任何帮助,将不胜感激。谢谢。
我认为你的缩进不在第一端需要另一个空间来排列。
describe "Copyright statement" do
it "should exist" do
@b.text.include? "Ark © 1"
end
end
一旦你更正了这个,你应该能够看到@ChuckvanderLinden 和我认为是真正的问题 - 你失踪并结束,但没有看到文件的其余部分,我们无法确定。
我确实从戴夫托马斯那里得到了这个提示,
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
更容易找到您的错误,
@SteveRobillard 在他的回复中解决了丢失的结束错误消息,但是您在如何尝试在那里使用 rspec 时遇到了另一个大问题。问题是您并没有真正对 .include 的结果做任何事情?方法,因为那里没有 .shou 。您的代码正在执行该方法,但只是有效地将返回到位桶中的“真”或“假”扔掉。该测试永远不会失败,因为您缺少任何类型的验证。我认为这条线需要更接近
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
我在网上搜索错误“invalid multibyte char (US-ASCII)”时找到了解决方案
将此行添加到顶部有助于版权声明!
# encoding: UTF-8
它只是文件顶部的一个简单注释,但它解决了版权字符和 Rspec/Ruby 1.9 的问题。
感谢大家的帮助和支持。我真的很感激!