2014-03-14 2 views
0
def some_method condition 
    actual = [1,2,3] 
    expected = include(1) 
    matcher = lambda {|condition| 
      if condition == "YES" 
       return RSpec::Matcher.should 
      else 
       return RSpec::Matcher.should_not 
      end} 
    actual.matcher.call(condition) expected 
end 

메소드에 구문 분석 된 조건을 기반으로 should 또는 should_not 정규 일치를 동적으로 만드는 방법은 무엇입니까?동적 Rspec 매처를 호출하는 방법 should 또는 should_not을 호출하는 방법

def some_method condition 
    actual = [1,2,3] 
    expected = include(1) 
    matcher = lambda {|condition| 
      if condition == "YES" 
       :should 
      else 
       :should_not 
      end} 
    actual.send(&matcher.call(condition), expected) 
end 

이 실제 결과에 대한 방법 should 또는 should_not를 호출 중 하나

답변

1

나는 무엇을 당신이 의미하는 것은 생각합니다. ...

+0

감사를 보조 노트에

, 나는 이것이 좋은 아이디어라고 할 때 ... 단위 테스트가 결정하고 읽을 수 있어야보고 꽤 어려움을 겪고있어,이 아이디어는 모두 그들을 덜하게 당신이 아주 많이. 나는 그것이 사용되어서는 안된다는 것에 당신의 의견에 동의한다. 나는 그것을 어떻게하는지 궁금했다. 'actual.send (matcher.call (condition), expected)'하려고했을 때 제대로 작동하지 않았습니다. 이제 그 이유를 알았습니다. 당신의 도움을 주셔서 대단히 감사합니다. 감사합니다. (사용 사례는 같은 단계에 대해 "SHOULD"또는 "SHOULD_NOT"을 전달하고 처리하기 위해 Cucumber 단계 정의에있었습니다. – rstormsf

관련 문제