나는 내 수업이 테스트 케이스를 작성하려는 : 일반 메소드 호출과Spock : where 절에 다른 인스턴스를 전달하고 호출 횟수를 계산하려면 어떻게해야합니까?
테스트
난을 만든이를 위해 RuntimeException을
을 던졌습니다 메소드 호출과 테스트 다음 테스트. 그러나 불행히도 그것은 작동하지 않습니다 : 그것은 "너무 적은 호출"로 끝나고, 대신 하나가 0으로 끝납니다.
왜?
코드 :이 클래스 SimpleSpockTest는 "좋은"속성이 있거나없는 말을 실패 : 는 또한 내가 "공유"조명기하는 경우 "설정"을 이동하고 싶지만 그럴 수 없어
import spock.lang.Shared
import spock.lang.Specification
class SimpleSpockTest extends Specification {
interface Simple {
void run();
}
@Shared
Simple good = Mock(Simple)
@Shared
Simple bad = Mock(Simple)
def "test invocations"() {
setup:
bad.run() >> { throw new RuntimeException() }
when:
instance.run()
then:
invocations * instance.run()
where:
instance | invocations
good | 1
bad | 1
}
}
PS "나쁜".
이 테스트는 전혀 이해가되지 않는 것입니다. 무엇을 성취하려고합니까? 당신의 시나리오는 무엇입니까? – Opal
오팔, 이것은 단순한 예입니다. 실제 테스트에서 나는 run 메소드에 의해 발생 된 1) 예외가 올바르게 등록되었는지 (예외를 던지는 모의가 필요한 이유, 예외 핸들러 호출을 계산할 수 있음) 2) 메소드 실행이 적절한 횟수 호출되었는지 확인하려고합니다. 이 테스트는 단순화 된 예제이지만 작동하지 않습니다. – MiamiBeach