LineItemsPage というページ オブジェクトがあります。
class LineItemsPage
attr_accessor :add_line_item_button
def initialize(test_env)
@browser = test_env[:browser]
@action_bar = @browser.div(:id => 'lineitems_win').div(:class => 'window-body').div(:class => 'actionbar')
@add_line_item_button = @action_bar.img(:class => 'button add')
end
def method_missing(sym, *args, &block)
@browser.send sym, *args, &block
end
end
私はそれを次のように使用します:
When /^I click on Add Item and enter the following values:$/ do |table|
@line_items_page = LineItemsPage.new(@test_env)
@line_items_page.add_line_item_button.when_present.click
end
LineItemsPage クラスに次のようなものを追加して、クリックを抽象化する必要があるかどうか疑問に思っています。
def add_item
self.add_line_item_button.when_present.click
end
そして、それを次のように使用します:
@line_items_page.add_item
特にPage ObjectまたはRuby全般に関して、ベストプラクティスを探しています。を使用してインターフェイスをカプセル化するのadd_item()
は少し先のことだと思いますが、そうしないと将来遭遇する可能性のある問題に気付いていないのではないかと思います。