diff --git a/googletest/docs/kr/primer.md b/googletest/docs/kr/primer.md index c2000a68..196b9e09 100644 --- a/googletest/docs/kr/primer.md +++ b/googletest/docs/kr/primer.md @@ -9,7 +9,7 @@ googletest는 Google Testing Technology Team 주도로 개발이 시작되었다 1. 테스트는 *독립적이고 반복적으로* 수행될 수 있어야 한다. 테스트들이 서로 영향을 받는다면 디버깅이 어려워질 것이다. googletest는 각 테스트를 서로 다른 객체object에서 실행함으로써 테스트들을 격리시킨다. 한 테스트가 실패했을 때 googletest로 그것만 따로 실행해서 디버깅을 빨리 할 수 있다. 2. 테스트는 *잘 정리되어 있어야* 하고 테스트한 코드의 구조도 반영해야 한다. googletest는 관련있는 테스트를 테스트 스위트test suite로 묶어 데이터와 서브루틴subroutine을 공유할 수 있게 했다. 이 보편적인 형태는 알아보기도 쉽고 테스트 유지보수도 쉽게 만들어 준다. 이런 일관성은 사람들이 프로젝트를 바꿔 새로운 코드에서 일을 시작할 때 특히 도움이 될 것이다. 3. 테스트는 *이식성*과 *재사용성*이 있어야 한다. Google에는 플랫폼 중립적인 코드가 아주 많기 때문에 테스트코드 또한 플랫폼 중립적이어야 했다. googletest는 운영체제와 컴파일러에 관계없이 동작하며 또 예외exception가 활성화되었든 아니든 동작하므로 다양한 환경configuration에서 사용할 수 있다. -4. 테스트가 실패했을 때는 문제에 대해 가능한 많은 *정보를 제공해야 한다.* googletest는 첫번째 테스트 실패가 발생한다고 해도 중단되지 않는다. 해당 테스트만 중단하고 나머지 테스트를 계속해서 진행한다. 더불어 테스트 실패가 non-fatal failure인 경우에는 현재 진행중인 테스트도 중단하지 않고 계속해서 진행하도록 설정하는 것이 가능하다. 이러한 설계의 장점은 한 번의 run-edit-compile cycle로도 여러 개의 bug를 찾아내고 개선할 수 있다는 것이다. +4. 테스트가 실패했을 때는 문제에 대해 가능한 많은 *정보를 제공해야 한다.* googletest는 첫번째 테스트 실패가 발생한다고 해도 중단되지 않는다. 해당 테스트만 중단하고 나머지 테스트를 계속해서 진행한다. 더불어 테스트 실패가 non-fatal failure인 경우에는 현재 진행중인 테스트도 중단하지 않게 되며 나머지 내용을 계속해서 진행하도록 구현할 수 있다. 이러한 설계의 장점은 한 번의 run-edit-compile cycle로도 여러 개의 bug를 찾아내고 개선할 수 있다는 것이다. 5. 테스팅 프레임워크는 테스트를 구현하는 사람이 실제 구현에만 집중할 수 있도록 도와줘야 한다. googletest는 정의된 모든 테스트를 자동으로 찾아서 실행해주기 때문에 사용자가 하나하나 찾아서 실행할 필요가 없다. 6. 테스트는 *빨라야 한다.* googletest의 set-up/tear-down을 사용하면 테스트 간의 공유 자원을 재사용할 수 있다. 또 그러한 과정에서 테스트 간의 상호의존성도 없다.