我在黄瓜框架中使用了rspec期望,当它们在步骤定义级别使用时看起来很好。
我已将env.rb文件配置为:
require 'rspec/expectations'
World(RSpec::Matchers)
我现在注意到的问题是,如果我尝试在其中一个步骤中使用的对象的方法中使用rspec,那么我就会失败。
E.g.
Steps_definition.rb
service.use_rspec
class Service
def use_rspec
header = page.find("div#services h2").text
header.should (be 'TV')
end
end
Error after execution:
undefined method `be' for #<Service:0x2592570> (NoMethodError)
知道问题出在哪里?
我在Capybara.page.find(...)中尝试了类似的断言。在该类中应该有has_content('...')并且'have_content'也不被识别,所以不确定发生了什么:S
非常感谢任何提示!
答案 0 :(得分:0)
您的服务类不在世界范围内,因此RSpec :: Matchers不在那里。
您有两种可能性:
写:
class Helpers
def method
# Capybara and RSpec::Matchers are available here
end
end
World{Helpers.new}
或
module Helpers
def method
# Capybara and RSpec::Matchers are available here
end
end
World(Helpers)