我的rspec和页面对象有问题。我有
cell(:balance_type_tab_element, :id => 'a')
然后是我的行
def check_all
check_navigation_to_and_from_balance_page
check_printer_friendly_link
end
然后我也有
def check_allocation_by_balance_type
balance_type_tab?
puts "found tab"
puts balance_type_tab_element.visible?
balance_type_tab_element.visible?.should be_true
end
和
def check_navigation_to_and_from_balance_page
//some other checks
check_allocation_by_balance_type
end
然后在一个步骤文件
on_page(ParticipantBalanceDetailsPage).check_all
但我不断收到错误NameError:undefined local variable或method`be_true'
我尝试使用谷歌搜索但到目前为止没有运气,有人可以帮助我吗?
答案 0 :(得分:6)
各种匹配器方法不会在每个上下文中自动提供。请注意,当您致电be_true
时,您正在向be_true
发送self
条消息。为了使所有匹配器在每个上下文中都可用,RSpec必须将所有匹配器对象添加到系统中的每个对象,这将是一个糟糕的想法。
要在此上下文中使匹配器可用,您只需将RSpec::Matchers
混合到您的班级中:
class MyPageObject
include RSpec::Matchers
def check_allocation_by_balance_type
balance_type_tab?
puts "found tab"
puts balance_type_tab_element.visible?
balance_type_tab_element.visible?.should be_true
end
end