2

我对 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 or method `be_true'

我试过谷歌搜索,但到目前为止没有运气,有人可以帮我吗?

4

1 回答 1

6

各种匹配器方法并非在每种情况下都自动可用。考虑一下,当您打电话时be_true,您正在be_trueself. 为了使所有匹配器在每个上下文中都可用,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
于 2013-01-02T15:41:46.660 回答