단위테스트의 가치 개발자 생산성을 향상하는 테스트 설계 도구로써의 테스트 더 좋은 테스트 테스트를 코딩이 끝나면 다른 사람이 해주는 일 혹은 코딩이 다 끝냈다고 선언하기 전에 자신이 짠 코드를 이리저리 찔러보는 정도로 치부하던 시절. 자동화된 테스트는 개발자가 직접 작성해야 하고, 그중 하나라도 실패하면 빌드 전체가 실패한다라는 인식은 널리 퍼졌다. 테스...
무엇이 좋은 테스트를 만드는가? 테스트를 대하는 태도 신뢰할 수 있는 테스트의 중요성 무엇이 테스트를 좋게 만드는가? 가독성과 유지보수성 소스파일안에서 코드는 적절히 구조화 되었는가? 무엇을 검사하는가? 안정적이고 반복 가능한가? 테스트 더블을 잘 활용하는가? 읽기 쉬운 코드가 유지보수도 쉽다 가독성과 결함 밀도는 반비례 한다는 연구...
테스트 더블로 할 수 있는 일 테스트 더블의 종류 테스트 더블을 효율적으로 활용하기 위한 지침 스텁 예전의 의미 : 제품 코드가 온전히 준비되기 전까지 사용할 대용품 테스트에서 의미 : 대상 코드를 격리하고, 속도를 개선하고, 예측 불가능한 요소를 제어하고, 특수한 상황을 시뮬레이션하고, 감춰진 정보를 얻어내는 용도 테스트 더블의 위력 테스트 대...
단언문과 관련된 테스트 냄새 제품 코드에 흩뿌려진 정보와 관련된 테스트 냄새 과하거나 불필요한 세부 정보와 관련된 테스트 냄새 테스트란 코드에 바라는 동작과 가정을 프로그래머식으로 표현한 것, 읽은 프로그래머는 코드가 해야 할 일을 이해하고 실제로 한 일이 무엇인지 말할 수 있어야 한다. 기본타입 단언 단얼하려는 이유나 의도가 의미를 알 수 없는 단어나...
인지부하를 가중시키는 테스트 냄새 유지보수 악몽에 시달리게 하는 테스트 냄새 불규칙한 실패를 초래하는 테스트 냄새 중복 악의 근원 : 어설픈 최적화, 중복 중복이 나쁜 이유 : 개념과 논리를 곳곳에 흩어놓아 코드를 이해하기 어렵고 불투명하게 만든다. 더욱이 코드를 수정하려면 중복된 곳을 모두 찾아 일일이 손봐줘야 한다. 상수 중복 : 지역 변수로 만들어 ...
코드 주석과 관련된 테스트 냄새 미흡한 기대치 관리로 인한 테스트 냄새 조건부 실행과 관련되 테스트 냄새 신뢰할 수 있는 코드를 만들기 위해서는 테스트 자체도 믿음직 해야 한다. 주석으로 변한 테스트 주석으로 변한 테스트는 한낱 잡음에 불과하다. 개선 방법 이해해 보려 노력하고 검증한다. 이해 된다면 주석을 풀고 파악한 목적이 더 잘 표현되게...
제품 코드는 단위 테스트를 쉽고 빠르게 작성할 수 있도록 설계해야 한다. 테스트 가능 설계는 테스트코드에서 클래스를 생성하고, 구현 일부를 대체하고, 다른 시나리오를 시뮬레이션하고, 원하는 실행경로를 선택하는 등의 작업을 쉽게할 수 있도록 해준다. 테스트 용이성이 떨어질 수록 테스트를 작성하는 프로그래머의 부담이 커진다. 모듈러 설계 SOLID 설계 원칙...
이 장의 내용 제2의 JVM 언어의 종류 및 특징 그루비로 단위 테스트 작성하기 BDD 도구 맛보기 JVM 언어 혼용의 조건 제2의 JVM 언어들은 자체만의 독자적인 문법과 느낌을 추구하지만, 공통점이 하나 있다. 모두가 한결같이 자바보다 더 간결하고 푠현력도 좋다고 주장한다는 점이다. 이점 자질구레한 문법이 적어 핵심 로직이 자 ㄹ드러난다. ...
이 장의 내용 빌드가 느려지는 근본 원인 찾기 테스트 코드 속도 개선 기법 자동 빌드 속도 최적화 기법 좋은 단위 테스트는 수행 시간도 짧다. 속도 개선을 위해서 테스트 시간이 너무 길어지면 사고 흐름을 놓칠 때까지 멍하니 화면만 응시하고 있거나, 빌드를 걸어놓고 다른 작업을 시작해야 한다. 문제를 발견하고 대응하기 까지의 시간이 늦어질 것...