본문 바로가기
[Effective Unit Testing] Appendix A. JUnit 기초 [Effective Unit Testing] Appendix A. JUnit 기초 -JUnit 을 이해하려면 두 가지를 꼭 알고 있어야 한다.첫째는 JUnit 테스트의 구조와 생명주기다.두번째는 단언 API 다. A-1. 기본적인 JUnit 테스트 케이스 A.1.1. 테스트 메서드 선언하기 -JUnit 은 public 이 아닌 메서드는 다 무시한다.입력 인자를 받는 메서드도 모두 무시한다.반환형이 void 가 아니어도 역시 무시한다.static method 도 무시 대상이다.@Test annotation 이 없으면 당연히 무시한다.즉, 테스트 메서드는 public void 이면서 입력 인자를 받지 않는 @Test annotate 된 것이다. A.1.2. JUnit 테스트의 생명주기 -JUnit 은 다음의.. 2019. 3. 20.
[Effective Unit Testing] Chap9. 테스트 속도 개선 [Effective Unit Testing] Chap9. 테스트 속도 개선 -좋은 단위 테스트는 수행 시간도 짧다.그러나 테스트 스위트의 덩치가 커질수록 피드백 주기가 길어지는 건 피할 수 없다. -테스트 속도 개선과 빌드 속도 개선 두 가지 측면을 볼 수 있다.테스트 속도 개선은 테스트를 빠르게 해줄 실마리를 찾기 위해 코드를 파해치는 작업이다.빌드 속도 개선과 관련해서는, 빌드 스크립트가 테스트를 실행하는 방식을 봐야 한다. 구체적으로는 고성능 컴퓨터나 다수 컴퓨터를 이용한 병렬 실행을 통해 빌드 시간 단축을 볼 수 있다. 9.1. 속도 개선을 위해서 9.1.1. 더 빠르게! -테스트가 빨리 끝나야 하는 이유는 피드백이 늦어질수록 피해가 더 커지기 때문이다.좁게 보면 개발자는 작업을 마무리하지 못하고.. 2019. 3. 19.
[Effective Unit Testing] Chap8. 제 2의 JVM 언어를 활용한 테스트 작성 [Effective Unit Testing] Chap8. 제 2의 JVM 언어를 활용한 테스트 작성 8.1. JVM 언어 혼용의 조건 - 제 2의 JVM 언어의 역사는 파이썬 언어의 JVM 버전인 자이썬(Jython)으로부터 시작되었다. 자이썬은 사용자를 충분히 확보하지 못하여 결국 2005년에 실질적인 개발이 중단되었지만, 또 다른 JVM 언어들이 등장하는 계기가 되어주었다. - 2001년에는 자바판 루비인 JRuby, 2003년에는 Groovy 가 발표되었다. 2003년은 Scalar 가 나온 해이기도 하다. 2007년 Lisp 를 변형하여 만든 Closure 역시 강력한 JVM 언어이다. 8.1.1. 일반적인 이점 - JVM non-java 언어의 장점은.. 자질구레한 문법이 적어 핵심 로직이 잘 .. 2019. 3. 18.
[Effective Unit Testing] Chap7. 테스트 가능 설계 [Effective Unit Testing] Chap7. 테스트 가능 설계 7.1. 테스트 가능 설계란? -테스트 가능 설계의 가장 큰 의의는 당연히 코드를 더 잘 테스트할 수 있도록 해준다는 것이다. -테스트 용이성(testability)이란 테스트할 수 있는 소프트웨어냐 아니냐를 설명하는 용어가 아니다.그보다는 소프트웨어를 멀마나 쉽게 테스트할 수 있느냐를 평가하는 용어다.단위 테스트를 위한 시나리오 준비는 식은 죽 먹기여야 한다.테스트 용이성이 떨어질수록 테스트를 작성하는 프로그래머의 부담이 커진다. 7.1.1. 모듈러 설계 -제품은 특정 역할을 담당하는 독립 모듈로 구성된다는 그 본질만 잘 반영하면 자연스럽게 모듈러 설계가 만들어진다.제품의 전체 기능을 뚜렷한 역할로 나누고 그 역할 각각을 독립된.. 2019. 3. 17.
반응형