11.07
test코드 실행 에러(4h)
test코드를 작성해서 실행했는데 에러가 나서 돌아가지 않는다.. 도대체 왜?..
1. 외부설정을 불러오려 했으나 존재하지 않는다.
@Value 를 통해 application.yml의 설정을 불러오고자 했으나 설정에 값이 존재하지 않아 계속해서 injection에러가 발생했다. application.yml에 설정을 추가하니 정상적으로 작동
- @Value : application.yml(properties)의 설정을 불러오는 어노테이션
1
2
3
4
public class Config {
@Value("${application.yml}") // application.yml에 설정이 없어서 생긴 에러
private String configString;
}
- 어디서 에러가 났는지 확인은 했지만 아예 모르는 것이라 동료에게 물어봄 -> 적어도 어노테이션을 찾아보고 왜 안되는건지에 대해 다시 한번 생각해보기
2. Cannot find symbol
테스트 코드를 실행해보니, cannot find symbol 에러 발생 -> 아래와 같이 명령어 실행
- gradle clean
- build project
콘솔을 확인해보니 기존에 있던 메소드가 사라지면서 생긴 에러이기에 기존 클래스를 전체 주석으로 변경하고 실행함
3. Communication link Failure
테스트를 실행했을때 아래와 같이 여러개의 에러가 발생..
- Slf4jSpyLogDelegator: 1. PreparedStatement.executeBatch() FAILED!
- table doesn’t exist.
- com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
결과적으로는 Docker의 mySql 이 꺼져있어서 생긴 에러로, 언제 꺼졌는지는 모르겠지만 다시 켜주니까 정상 작동하였다.
4. NullPointException
이제는 에러가 발생하지는 않지만, NullPointException이 발생했다. 기존에 @NotNull로 값을 막아둔 컬럼이 있는데 막상 확인해보니, 경우(create/update)에 따라 null이 허용되는 컬럼이라 @NouNull 을 삭제했다.
막상 적고보니, 왜 그렇게 까지 오래 걸렸나 싶지만,, 대부분 혼자 해결한 것에 의의를 둔다..