2016-08-31 5 views
1

Ruby-Cucumber 프레임 워크가 있습니다. 몇 가지 반복적 인 기능을 쓰지 않으려면 method_missing 메서드를 사용해야합니다. 어디에서 내 method_missing을 배치해야합니까? 어떤 .rb 파일에 support 폴더 아래에? 아니면 다른 특정 파일로 이동해야합니까?Cucumber Ruby 프레임 워크에서 method_missing은 어디에 정의해야합니까?

+0

여기를 시도하십시오. 게시물의 제목은 "클래스 및 인스턴스 메소드에 대해 method_missing 무시"입니까? 어떻게하는지에 대한 아이디어를 얻을 수 있습니다. http://stackoverflow.com/questions/22846777/override-method-missing-for-class-and-instance-methods – BKSpurgeon

답변

1

정의 당신 같은 method_missing만한 오이 도우미 메서드는 support 디렉토리에 .rb 파일에 당신이 다음 the Cucumber World에 전달 모듈에서 : 단계 정의에없는 방법을 다음을 호출 할 수 있습니다

module MethodMissing 
    def method_missing(method) 
    puts "You said #{method}" 
    end 
end 
World MethodMissing 

.

모든 오이 도우미 방법과 마찬가지로 method_missing은 오이 World에서만 정의해야합니다. 지원 파일의 최상위 레벨에서 정의한 경우 루비 최상위 오브젝트에서 정의되며 모든 곳에서 사용할 수 있습니다. 이것은 비조직적이며 다른 코드를 손상시킬 수 있습니다.

Worldmethod_missing을 정의하거나 respond_to_missing?을 정의하지 않기 때문에 나는 Worldmethod(:foo)를 호출 할 계획을 가지고 있지 않았기 때문에 나는 의도적으로, super에 연기하지 못했지만, 당신이 선호하는 경우에 당신은 그 일을 할 수있다 method_missing을 정의 할 때 항상이를 수행하십시오.