:
class MyTestClass {
int getAPlusB() { return getA() + getB() }
int getA() { return 1 }
int getB() { return 2 }
}
내가 산술이 올바른지 확인하려면 다음 스팍 테스트를 작성할 수 있지만, 또한이 getA()
및 getB()
실제로 getAPlusB()
에 의해 호출됩니다
def "test using all methods"() {
given: MyTestClass thing = Spy(MyTestClass)
when: def answer = thing.getAPlusB()
then: 1 * thing.getA()
1 * thing.getB()
answer == 3
}
지금까지는 getA와 getB가 호출 된 것으로 확인되었지만 해당 메소드의 코드가 실제로 실행되는 세 가지 메소드 모두에서 모든 코드가 실행 중입니다. 귀하의 경우, 당신은 별도로 내부 방법을 테스트하고 있으며,이 시험을하는 동안 당신은 그들을 호출하고 싶지 않을 것입니다.
def "test which stubs getA and getB"() {
given: MyTestClass thing = Spy(MyTestClass)
when: def answer = thing.getAPlusB()
then: 1 * thing.getA() >> 5
1 * thing.getB() >> 2
answer == 7
}
: 스팍 스파이를 사용하여, 당신은 그러나 당신이 반환 된 값을 지정하려면 특정 방법을 스텁의 옵션을 테스트중인 클래스의 실제 인스턴스를 인스턴스화 할 수 있습니다