spock 예제

Spock 테스트는 Java에 매우 가까운 그루비 스타일로 작성되기 때문에 그루비 지식이 필요하지 않습니다. 그러나 일부 고급 예제에서는 이 자습서의 Groovy 클로저와 유사하므로 Java 8 람다 식을 아는 것이 좋습니다. 우리는 우리의 테스트에서 PaymentCalculator라는 클래스를 스텁 할 가정, 더 구체적으로 그 방법 중 하나, 계산 (제품, 정수 수). 스텁 버전에서는 제품의 값에 관계없이 개수를 10으로 곱한 값을 반환하려고 합니다. Spock에서, 우리는 이것을 달성합니다: 우리는 설명적인 Spock가 실패 추적을 제시하는 방법을 볼 수 있습니다: 우리는 Spock의 가장 중요한 조롱 기능을 보았지만, 탐구할 것이 몇 가지 더 있습니다: 우선 우리는 우리가 테스트할 컨텍스트를 지정하고 싶습니다. 기능. 여기서 테스트 중인 기능에 영향을 주는 시스템/구성 요소의 매개 변수를 지정합니다. 이 섹션은 모든 스포크 신인을 위해 정말 큰 얻을 하는 경향이 있다, 하지만 궁극적으로 당신은 더 간결 하 고 설명 하는 방법을 배울 것 이다. 테스트의 마지막 부분(다음: 블록)은 이전 예제에서 볼 수 있는 것과 동일합니다. info() 메서드가 올바른 인수로 한 번 실행되고 특히 when: block에서 스텁된 ID 123과 동일한 ID로 실행된 것을 확인합니다. Spock은 그루비에 의해 JVM에 가져온 흥미로운 개념을 사용하여 자신의 조롱 프레임 워크를 가지고 있습니다.

먼저, 모의 를 인스턴스화 하자: 그루비 이클립스 플러그인의 최신 버전이 설치 되어 있는지 확인. 생성된 프로젝트를 작업 공간으로 가져온 후 환경 설정->Java->빌드 경로-클래스경로 변수로 이동하여 값 user_home/.gradle/cache를 사용하여 GRADLE_CACHE라는 변수를 추가합니다. 환경 변수 GRADLE_USER_HOME 세트가 있는 경우 올바른 값은 GRADLE_USER_HOME/cache입니다.) 이제 프로젝트를 빌드하고 JUnit 테스트를 실행하는 것처럼 사양을 실행할 수 있습니다. 스포크 와 이클립스를 시작하는 방법에 대한 자세한 내용은 http://wiki.spockframework.org/GettingStarted#Eclipse 참조하십시오. 이 것의 전형적인 예는 단순히 척 뭔가 네트워크 호출을 만드는 클래스를 대체하는 것입니다. 더 자세한 설명을 위해, 그것은이 기사를 읽을 가치가있다. 확실하지 않다, 나는 테스트 범위를 얻기 위해 클로버와 함께 스포크를 사용하고 있습니다. 그러나 Jacoco가 표준 JUnit 테스트 결과 파일을 사용하면 Spock에도 문제없이 작동해야합니다.