: 테스트할 수 있는 가장 작은 단위를 테스트하는 코드를 작성해서 'test'하는 것
End-to-End & UI testing:
: 브라우저가 제대로 렌더링 되는지 확인하는 것. 모든 시스템을 다 갖추고 사람이 직접 실행하는 것이기 때문에 비용이 많이 들어감. 시간도 제일 많이 들어가고 실수도 많을 수 밖에 없음.
그럼에도 제일 직관적이라 하기가 쉽다는 장점이 있음.
Integration testing
: mockdata를 넣어서 제대로 되는지 확인해 보는 것. 프론트와 백에서 따로 해당 서버만 테스트 해보는 것. UI testting 만큼은 아니지만 비용과 시간이 들어감.
Unit testing
: 테스트할 수 있는 가장 작은 단위로 코드를 테스팅 해보는 것. '함수'를 테스팅하는 것으로 직접 짠 코드를 테스트 하는 코드를 짜야 한다. 빠르게 테스팅할 수 있다는 장점이 있으며 반복적으로 계속 돌려볼 수 있다. 그래서 버전이 업데이트 될 때마다 시행되어야 하는 테스팅을 자동화할 수 있어 길게 보면 매우 효율적이다. 테스팅을 하지 않아 생기는 보수 유지비가 나중에는 더 커질 수 있으므로 'unit test'는 매우 중요함.
테스트 유닛은 각 기능의 가장 작은 단위에 집중하여 해당 기능이 정확히 동작하는지를 증명해야 함.
각 테스트 유닛은 독립적이어야 함. 각 테스트는 혼자서도 실행 가능해야하고, 테스트 슈트로도 실행 가능해야 함.
테스트가 빠르게 실행되게 만들기 위해 노력해야 함.
그날의 코딩을 시작하기 전에 항상 풀 테스트 슈트를 돌려야 함.
====================================================================================