스프링부트로 프로젝트 설계를 할 경우
테스트코드는 필수라고 한다
아주 간단한 프로젝트를 혼자 할 경우에는 어찌어찌 돌아가게 만들 수 있지만
코드 량이 많아지고 협업을 하게 될 경우에는 테스트코드는 선택이 아닌 필수가 된다고 하니
잘 알고 있어야한다
강의를 보면서 간단한 테스트코드를 작성하면서 알게 된 것은
어노테이션으로 @Test라고 작성된 여러 테스트가 만약 20개 30개가 넘어간다고 하면
개별적으로 하나하나 구동시켜서 에러가 있는지 확인 하는 것은 비효율적이다
그러므로 한번에 실행해서 테스트가 잘 돌아가는지 확인 할 필요가 있다
그럴 경우 파일을 우클릭해서 런 할 수 있고 상단에
해당 클래스를 바로 실행할 수도 있는데
이럴경우에 10개를 실행한다고 가정하면 10개의 순서를 확정할 수 없다
알아서 랜덤으로 실행되기 때문에 이전에 실행된 값이 후에 실행되는 코드에 값으로 들어가는 경우가 생길 수 있고
그렇게되면 순서로 인한 에러가 발생한다
이를 해결하기 위해서 우리는 @AfterEach라는 어노테이션을 사용해야하는데
리포지토리에 이렇게 clearStore를 만들어주고
어노테이션을 추가해주고 위와 같이 리포지토리에 작성된 코드를 불러오게 되면
테스트 코드를 다중 실행 했을 경우 하나의 테스트 코드가 실행 되면 깔끔하게 해당 리포지토리를 비워주게 된다
그렇게 되면 중복해서 값이 넘어가지 않고 한번의 테스트 후 초기화가 되어서 순서로 인한 값 중복넘기기 같은 에러가 발생 하지 않게 된다
'Error' 카테고리의 다른 글
리액트 시작 시 에러 (Invalid options object. Dev Server has been initialized using an options object that does not match the API schema. -options.allowedHosts[0] should be a non-empty string.) (1) | 2023.01.25 |
---|---|
코드 302 200 이 안나오고 302 302가 나올 때 (0) | 2023.01.12 |
CORS 에러? 그놈이 알고싶다 (0) | 2022.12.31 |
인텔리제이 스프링부트 Whitelabel Error Page 에러 (0) | 2022.12.30 |
mysql error 1305 에러 해결 (mysql 프로시저) (0) | 2022.12.23 |