본문 바로가기
Back-End (web)

[Spock][Error] CannotCreateMockException

by 햄과함께 2019. 1. 3.
320x100

Spock 테스트 코드를 짜던 중 redisTemplate을 사용하는 코드가 있었다.


1
2
3
4
def "redis 테스트"() {
    def redisTemplate = Mock(RedisTemplate.class)
    // 생략
}
cs


그래서 위와 같이 redisTemplate을 Mock으로 만들어서 요청이 들어오면 내가 원하는 데이터를 반환하게 만들 생각으로 코드를 짰다.


org.spockframework.mock.CannotCreateMockException: Cannot create mock for class org.springframework.data.redis.core.RedisTemplate. 
Mocking of non-interface types requires the CGLIB library. 
Please put cglib-nodep-2.2 or higher on the class path.
cs


이렇게 짜니까 2번째 줄에 위와 같은 에러가 발생했다.

RedisTemplate mock을 생성할 수 없다고 하면서 CannotCreateMockException이 발생한다.

그리고 interface 타입이 아닌 Mocking은 CGLIB 라이브러리가 필요하다고 cglib-nodep-2.2나 이보다 높은 버전을 추가하라고 한다.


1
2
3
4
5
6
7
8
9
// build.gradle
dependencies { 
 
    // spock
    testImplementation('org.spockframework:spock-core:1.1-groovy-2.4-rc-2')
    testImplementation('org.spockframework:spock-spring:1.1-groovy-2.4-rc-2')
 
    testImplementation('cglib:cglib-nodep:2.2'// 추가
}
cs


가르쳐준대로 cglib-nodep 2.2 버전을 의존성에 추가(8번째 줄)해서 해결했다.


참고 : CGLib Nodep 2.2

320x100

'Back-End (web)' 카테고리의 다른 글

[TEST] spock test example  (0) 2019.01.11
[Kotlin] Default argument (디폴트 매개변수)  (0) 2019.01.06
[Kotlin] List, MutableList  (0) 2018.12.31
window gradle 설치  (0) 2018.11.05
@Builder 상속에 사용하기  (0) 2018.11.01

댓글