본문 바로가기
[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] Chap5. 유지보수성 [Effective Unit Testing] Chap5. 유지보수성 -코드는 쓰이는 횟수보다 읽히는 횟수가 훨씬 많다.그리고 현실에서의 작성의 대부분은 기존 코드를 수정하거나 확장하는 걸 뜻한다.이를 유지보수라 하기도 하고 개발이라 부르기도 한다. -테스트도 태생은 제품 코드와 다를 바 없는 코드인지라, 근본적으로 똑같이 불안정하다.자동화된 단위 테스트를 작성할 때도 이런 취약성에 주의하면서 관리해야 한다. 5.1. 중복-모든 악의 근원 넘버원은 “어설픈 최적화” 이고, 넘버투는 “중복(Duplication)이다. 5.1.1. 예시 -상수 중복은 given 과 then 의 상수를 따로 정의해서 쓰는 것을 이야기한다.상수 중복은 지역 변수로 만들어서 제거할 수 있다. 5.1.2. 개선 방법 -구조 중복과 .. 2019. 3. 14.
[Effective unit Testing] Chap3. 테스트 더블 [Effective unit Testing] Chap3. 테스트 더블 -스텁(stub)과 더미(dummy)가 등장한 가장 큰 이유는 제품 코드가 온전히 준비되기 전까지 사용할 대용품이 필요했기 때문이다.대용품이 있다면 주변 모듈을 다 갖추지 못했더라도 코드 일부만을 따로 컴파일하고 실행해볼 수 있었다. -오늘날에는 쓰임새가 훨씬 다양해졌다.종속 모듈 없이 컴파일하고 실행하려는 애초의 용도는 그 비중이 많이 줄었다.대신 테스트 추종 프로그래머에 의해 다양한 테스트 전용 장치가 만들어지면서 요즘은 테스트 대상 코드를 격리하고, 속도를 개선하고, 예측 불가능한 요소를 제어하고, 특수한 상황을 시뮬레이션하고, 감춰진 정보를 얻어내는 등의 용도로까지 쓰이고 있다.목적에 따라 비슷한 듯하면서도 다른 객체를 사용하는.. 2019. 2. 28.
[Effective Unit Testing] Chap2. 좋은 테스트란? [Effective Unit Testing] Chap2. 좋은 테스트란? -좋은 테스트의 고려 사항은 아래와 같다. 테스트 코드의 가독성과 유지보수성 프로젝트 안에서, 그리고 소스 파일 안에서 코드는 적절히 구조화되어 있는가? 테스트가 무엇을 검사하는가? 테스트는 안정적이고 반복 가능한가? 테스트가 테스트 더블을 잘 활용하는가? ... 2.1. 읽기 쉬운 코드가 유지보수도 쉽다.-자동화된 테스트는 결함을 효과적으로 막아주지만, 테스트 역시 코드인지라 가독성 문제에서 벗어날 수는 없다.읽기 어려운 코드는 검증하기도 어렵고, 결과적으로 테스트를 조금만 작성하는 사태로까지 이어진다.또 그렇게 작성된 테스트는 우리가 생각하는 좋은 테스트와는 거리가 멀다.제품의 구조와 API 가 테스트를 고려하지 않고 만들어졌다.. 2019. 2. 27.
반응형