2015-04-10 2 views
0

Я пытаюсь проверить текст на веб-странице. Строка кода, используя это: @browser.test.include?('Favorites').should==trueНеопределенный метод «должен» при использовании .text.include? с watir и ruby ​​

Когда сценарий выполняет эту строку, я получаю ошибку: undefined method 'should' for false:FalseClass (NoMethodError)

Вот полный код:

require 'watir-webdriver'  
require 'rspec' 


@browser=Watir::Browser.new :ff 
@browser.goto('http://enoteca.demo.episerver.com/en-US/') 
@browser.link(:text=>'Register').wait_until_present 
@browser.text.include?("Favorites").should==true 

ответ

1

Вы должны определить example group, содержащий один или несколько примеров. Например:

require 'watir-webdriver' 
require 'rspec' 

describe "an example group" do 
    it "is an example" do 
    browser = Watir::Browser.new 
    browser.goto('www.example.org') 
    browser.text.include?('Domain').should==true 
    end 
end 

Если вы поместите в файл с заканчивающейся _spec.rb (например, foo_spec.rb), вы можете запустить его в командной строке или в терминале: rspec foo_spec.rb. После завершения RSpec возвращает статус:

Finished in X.XX seconds (files took X.XXXX seconds to load) 
1 example, 0 failures 

Кроме того, метод should был устаревшим в rspec3 (хотя он все равно будет работать на данный момент). Фактически, rspec3 вернет предупреждение об устаревании, если вы используете should.

Using should from rspec-expectations' old :should syntax without explicitly enabling the syntax is deprecated. Use the new :expect syntax or explicitly enable :should with config.expect_with(:rspec) { |c| c.syntax = :should } instead.

Вот тот же спецификации, что и выше, но с использованием expect вместо should:

describe "an example group" do 
    it "is an example" do 
    browser = Watir::Browser.new 
    browser.goto('www.example.org') 
    expect(browser.text).to include 'Domain' # expect method instead of should 
    end 
end 
0

В то время как я думаю, вы должны использовать пример группы (как @orde упоминалось), это технически не требуется , Вы можете использовать ожидания вне группы примеров, включив в них RSpec::Expectations:

require 'watir-webdriver'  
require 'rspec' 

# Include the expectations so that they do not need an example group 
include RSpec::Expectations 

@browser=Watir::Browser.new :ff 
@browser.goto('http://enoteca.demo.episerver.com/en-US/') 
@browser.link(:text=>'Register').wait_until_present 
@browser.text.include?("Favorites").should==true 
Смежные вопросы