2017-10-19 11 views
0

IgnoreIf spock 주석의 부울 값을 얻는 방법이 궁금합니다.Spock 주석 종료 결과 얻는 방법

@IgnoreIf({someBooleanMethod()}) 
def "Some Feature Method"(){ 
    // code and stuff 
} 

내가 또한 사용자 정의 스팍 확장이 있습니다

내 스크립트의 예를 들어 나는 이런 일이있을 수 있습니다. 나는 IgnoreIf 폐쇄를 포함하는 각 기능 방법에 대한 IgnoreIf 폐쇄를 평가하려는

//iterates over each feature method in a spec 
for (FeatureInfo feature : spec.getFeatures()){ 
    if(feature.getFeatureMethod().reflection.isAnnotationPresent(IgnoreIf.class)&&feature.getFeatureMethod().reflection.getAnnotation(IgnoreIf.class).value()){ 
     //some more code goes here 
    } 
} 

: 그 확장자에 나는이 있습니다. 내가 실수하지 않는다면, feature.getFeatureMethod().reflection.getAnnotation(IgnoreIf.class).value()은 주어진 주석에서 Clouse를 제공해야하지만 실제로 어떻게 평가할지는 모르겠다. someBooleanMethod 나는 이것이 참인지 거짓인지를 확인하기 위해 클로저 내부에있다. 어떻게해야합니까?

+0

확장 코드를 살펴보십시오. org.spockframework.runtime.extension.builtin.IgnoreIfExtension –

+0

@Leonard Brünings 'evaluateCondition '메소드를 호출한다. 비 정적 메서드입니다. 그래서 그 메서드를 호출 할 수 있도록 해당 개체의 인스턴스를 얻는 방법 – switch201

답변

0

new IgnoreIfExtension().visitFeatureAnnotation(feature.getFeatureMethod().reflection.getAnnotation(IgnoreIf.class), feature)

이것은 내가 한 일이다. IgnoreIf 조건이 참일 경우 자체적으로 건너 뛰도록 설정합니다.