2012-08-30 3 views
0

이것이 분명한 경우 나를 용서해주십시오. 그러나 메소드가 실행되기 전에 객체를 다시 초기화 할 수 있습니까? Ruby와 Selenium을 사용하여 웹 응용 프로그램을 테스트하고 있으며 페이지 객체를 개선하려고합니다. 예 :메서드가 종료되기 전에 개체가 다시 초기화 될 수 있습니까?

class Foo 

    def initialize 
    #stuff hapens here 
    end 

    def NewMethod 
    self.initialize 
    #What happens here is what I really want to happen 
    end 

end 

이것은 좋은 생각인가요? 나쁜 생각입니까? 아니면 이것을 할 수있는 더 좋은 방법이 있습니까?

+0

자세한 내용을 제공하여 질문을 개선하십시오. 여기서 질문하는 것이 명확하지 않습니다. –

+0

테스트 케이스의 내용을 확인하는 것이 아니라 페이지의 내용을 책임있게 만드는 방법을 계획하려고합니다. 여기서 나가려고하는 것은 탐색 바의 페이지 객체를 만드는 전략입니다. 나는 이제 nav bar를 가진 모든 페이지 객체가 nav bar 클래스로부터 상속받는 방향으로 기울어 져 있다고 생각한다. – Zach

답변

0

항상 개체에 포함 된 데이터를 변경할 수 있습니다. 즉 모든 init-logic을 추가 메서드에 넣은 다음 사용자 정의 메서드에서 호출 할 수 있습니다. 당신은 좋은 생각처럼 소리가 나지 않는다 무엇을하려고 일반적으로

, ...

0

사전에 발언 : 방법은 소문자로 작성됩니다. 을 newmethod으로 대체하십시오.

Foo.newmethod을 시도하면 오류가 발생합니다.

무엇을 하시겠습니까? 객체를 만들기 위해 다른 가능성을 정의하고 싶습니까?

당신이 할 수있는 무엇 :

class Foo 
    def initialize 
    end 

    def self.newmethod 
    me = self.new 
    #Some actions ... 
    me #Return the (modified?) object 
    end 

end 

p Foo.newmethod #->#<Foo:0xb77d58> 

Time 것은 같은 것을 사용하고 있습니다. Time.new, Time.gm, Time.local ...

관련 문제