undefined方法`should'为true:使用Ruby执行watir-webdriver测试脚本时的TrueClass(NoMethodError)

时间:2014-02-27 06:55:10

标签: ruby rubygems cucumber watir-webdriver

以下是我尝试使用黄瓜运行的代码。

require 'watir-webdriver'
require 'spec'

Given /^I navigate to Google$/ do
  @browser = Watir::Browser.new :ff
  @browser.goto "http://www.google.co.in"
end

When /^I enter Wado into the search field$/ do
  searchField=@browser.text_field(:name,'q')
  searchButton=@browser.button(:name,'btnG')
  searchField.set 'Wado'
  searchButton.click
end

Then /^the text DICOM should be present$/ do
  @browser.div(:id => 'resultStats').wait_until_present
  @browser.text.include?("DICOM").should == true
  @browser.close
end

但它给我的错误是这样的: 这是我在运行测试后得到的结果:

**

  

失败的场景:黄瓜特色\ karate.feature:3#   场景:主人在哪里?
  1个场景(1个失败)3个步骤(1个失败,2个失败)

**

,错误是:

  

未定义的方法should' for true:TrueClass (NoMethodError) ./features/step_definitions/step_karate.rb:18:in / ^文本DICOM   应该出现$ /'
  features \ karate.feature:6:在`那么文本DICOM应该出现'

Ruby版本是1.9.3 帮帮我!!

1 个答案:

答案 0 :(得分:1)

正如问题评论中所讨论的,问题是因为未安装rspec,而should由rspec gem提供。

我关于rspec版本的初步问题实际上是因为在rspec的更高版本中,should符号(something.should be_true)已经失宠,优先于expect符号({{ 1}})。

我(和其他一些人)仍然更喜欢expect(something).to be_true符号。