Closed ssooya90 closed 4 years ago
@jojoldu Chapter 4에서 Mustache를 이용한 실습을 하던중 HolloControllerTest부분에 illegalargumentexception이 뜨면서 더 이상 진행이 안되길래 BaseTimeEntity와 관련 테스트들을 주석처리하니 다시 테스트가 통과되는 현상이 있습니다. gradle은 4.10.2 버전으로 wrapping 했으며 Junit4를 사용하고 있습니다.
같은 문제로 해결방법 찾다가 역시 책은 처음부터 보면서 책 저자분과 같은 환경에서 진행 해야 하고 환경 세팅의 중요성을 한번 더 깨닫고 갑니다 ㅠㅠ
다운그레이드하고도 동일한 현상이 나타나서 확인해보니, IntelliJ IDEA 2020.3에서는 롬복 문제로, Preferences | Build, Execution, Deployment | Compiler | Build process VM options field에 -Djps.track.ap.dependencies=false 를 추가해야 정상작동이 된다고 하여, 추가 후 테스트 정상적으로 됐습니다!
74 Page = HelloResponseDto.java 에서 아래 에러가 발생했습니다. error: variable name not initialized in the default constructor private final String name; ^ error: variable amount not initialized in the default constructor private final int amount; ^
위에 @yazbyz 님이 알려주신 방법으로 해결했습니다.
build.gradle
dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.projectlombok:lombok') testCompile('org.springframework.boot:spring-boot-starter-test') <<< 이 부분을 추가했습니다. }
IntelliJ 버전은 다음과 같습니다.
IntelliJ IDEA 2021.1 (Ultimate Edition) Build #IU-211.6693.111, built on April 6, 2021
gradle 최신 6.8 버전으로 테스트 했고, build.gradle 에 아래 dependencies 추가해주면 동작합니다. annotationProcessor('org.projectlombok:lombok')
dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.projectlombok:lombok') annotationProcessor('org.projectlombok:lombok') testImplementation 'junit:junit:4.13.1' testCompile('org.springframework.boot:spring-boot-starter-test') testAnnotationProcessor('org.projectlombok:lombok') }
저는 아래와 같은 메시지의 에러가 났었는데, 구글링 하다보니 jdk16 과 롬복과의 호환 관련된 문제였습니다. java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x6f3d6636) ~
결론적으로, 롬복을 1.18.20으로 명시해 주었더니 문제 해결되었습니다. build.gradle 에서 dependencies 를 아래와 같이 수정하였습니다.
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
implementation('org.projectlombok:lombok')
annotationProcessor('org.projectlombok:lombok:1.18.22')
//annotationProcessor('org.projectlombok:lombok')
testImplementation 'junit:junit:4.13.1'
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
gradle 최신 7.4 버전으로 테스트 했고
dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.projectlombok:lombok' annotationProcessor('org.projectlombok:lombok') testImplementation 'junit:junit:4.13.2' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
이렇게도 동작됩니다
비슷한 문제가 발생했는데 해결했습니다! 감사합니다 : )
HelloResponseDtoTest.java에서 메소드 실행 시 아래와 같은 에러가 발생합니다.
Testing started at 오후 11:08 ...
책에서 나온대로 진행했는데, 에러가 발생해서 구글링을 좀 해보았습니다. dependencies { compile('org.springframework.boot:spring-boot-starter-web')
}
위처럼 바꾸니 정상적으로 실행이 되는데, 무엇이 문제였을까요?
그리고 2-29 테스트 결과가 앞에서 테스트한 hello_리턴된다의 이미지처럼 보입니다^^; 사용중인 환경은 아래와 같습니다. intellij ultimate 2019.3 windows10 사용중입니다.
감사합니다.
p.s. 질문을 여기에 올리는게 맞는지 정확하게 몰라서 이곳에 남겼습니다. 혹 이곳이 아니라면 말씀해주시면 참고하겠습니다.