2017-03-03 19 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