2017-03-03 9 views
0

私はテストステップを書いています。私はcheckbox_nameの名前でCapybaraのpage.check()メソッドに名前の値を渡す必要があります。私はそれをページオブジェクトモデルのクラス変数として以下のように保存したかった:SitePrismモジュールでクラス変数を使用することは可能ですか?

#class_name_page.rb 

class ClassNamePage < SitePrism::Page 

    set_url "/cool/url" 

    element :save_button, "input#save_button" 

    @@checkbox = "checkbox_name" 

    def self.checkbox 
    @@checkbox 
    end 

end 

次に私はテストステップでこれを呼ぶだろう。私はこれをしようとすると

# test_steps.rb 

When(/^creates a field with the name "(.*?)" that is enabled$/) do |field_label| 
    @site_pages.class_name_page.load 
    @site_pages.class_name_page.set field_label 

    page.check(@site_pages.class_name_page.checkbox) 

    @site_pages.class_name_page.save_button.click 
end 

事がある、またはインスタンス変数を使用して、私はundefined methodエラーを取得します。ページオブジェクトモデルからこの定数を呼び出すことも、SitePrismでそれを識別する方法もありますか?

答えて

1

あなたはクラスメソッドとしてcheckboxを定義しましたが、それをインスタンスで呼び出すことになります。それをあなたがそれを定義した方法にアクセスするには、よりよい解決策は自分のClassNamePage

element :my_checkbox, :checkbox, 'checkbox_name' 

をでチェックボックスを宣言してもよいこと

page.check(@site_pages.class_name_page.class.checkbox) 

注意を行う必要があるだろうし、あなたが行うことができます

@site_pages.class_name_page.my_checkbox.set(true) 
+0

ありがとう! – James

関連する問題