단위테스트에 대한 개인 개발자의 글을 정리하였음

단위테스트는 FIRST 해야한다.

Fast

단위테스트는 가능한 빠르게 실행되어야 한다. JdbcTemplate 을 이용한 클래스의 테스트일 경우 @SpringBootTest 가 아닌 @JdbcTest 를 붙여야 한다. @JdbcTest 는 각 메서드마다 실행한 테스트 결과를 롤백시켜주기도 하고, @SpringBootTest 는 해당 어플리케이션의 모든 빈들을 IoC 컨테이너에 올린 후 동작하기 때문에 속도가 느리다.

Independent

단위테스트는 객체의 상태, 메소드, 이전 테스트 상태, 다른 메서드의 결과 등에 의존적이면 안된다. 따라서 단위테스트는 어떤 순서로 실행하더라도 올바르게 동작해야 한다.

Repeatable

단위테스트는 반복 가능 해야한다. 즉, 여러번 실행하더라도 결과가 똑같이 통과해야 한다. DB 에 의존적인 테스트를 실행할 경우 이미 데이터가 존재하면 결과가 다르게 나오며 실패할 수 있다.

Self-validating

단위테스트는 자체 검증이 가능 해야한다. 개발자가 수동으로 확인하는 것이 아닌 테스트만으로 성공여부를 확인할 수 있어야 한다.

Timely

테스트코드를 작성하기 전에 프로덕션 코드를 작성해야 한다. 즉, TDD 를 해야한다.

https://galid1.tistory.com/772

https://dzone.com/articles/writing-your-first-unit-tests