2

嗨,我正在使用带有 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

任何帮助,将不胜感激。谢谢。

4

3 回答 3

1

我认为你的缩进不在第一端需要另一个空间来排列。

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

更容易找到您的错误,

于 2012-05-23T04:12:54.440 回答
1

@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

于 2012-05-23T05:34:07.313 回答
1

我在网上搜索错误“invalid multibyte char (US-ASCII)”时找到了解决方案

将此行添加到顶部有助于版权声明!

# encoding: UTF-8

它只是文件顶部的一个简单注释,但它解决了版权字符和 Rspec/Ruby 1.9 的问题。

感谢大家的帮助和支持。我真的很感激!

于 2012-05-24T18:51:45.310 回答