Clean Software/Testing

    테스트 코드 작성을 위한 가이드라인 : FIRST, Right-BICEP, CORRECT

    0. 어떤 테스트를 작성할지 결정 테스트는 보통 반복문 if문 등 조건문을 보는것으로 출발한다. 그 이후 데이트 변형을 고려하고 데이터가 null 혹은 0일경우도 대비한다. 또한 데이터 값은 조건문을 평가하는데 어떤 영향을 주는지 살핀다. 종속적인 조건들은 테스트 하나로 묶을 수 잇다. Junit은 테스트할때마다 새로운 인스턴스를 생성한다.(모든 테스트는 독립적으로 만든다) 1. AAA로 일관성 유지 준비(Arrange) 실행(Act) 단언(Assert) 2. 메서트 테스트가 아닌 동작을 테스트 단위 테스트를 작성할 때는 전체적인 시각에서 테스트를 해야한다. 개별 메서드를 태스트하는것이 아니라 클래스의 종합적인 동작을 테스트해야한다. 3. 테스트 코드와 프로덕션 코드 테스트 코드는 프로덕션 코드에 의존하..

    Hamcrest (읽기 쉬운 JUnit Test 코드 작성하기)

    Hamcrest 란? 더보기 Hamcrest 란? 위키백과 Hamcrest는 Java 프로그래밍 언어로 소프트웨어 테스트 작성을 지원하는 프레임 워크입니다. 사용자 지정 assert matcher생성을 지원하여 일치 규칙을 선언적으로 정의 할 수 있습니다. 이러한 matcher는 JUnit 및 jMock과 같은 단위 테스트 프레임 워크에서 사용됩니다. Junit에서 Hamcrest matcher를 사용하려면 assertThat 문 뒤에 하나 또는 여러 개의 matchers를 사용한다. assertThat(T actual, Matcher matcher) 가령 아래의 식을 // Junit4 코드 assertEquals(expedted, actual) assertNotEquals(expected, actual..

    JUnit 5 (JUnit 4와 비교)

    JUnit5 란? JUnit이란? 더보기 JUnit은 자바 프로그래밍 언어용 유닛 테스트 프레임워크이다. JUnit은 테스트 주도 개발 면에서 중요하며 SUnit과 함께 시작된 XUnit이라는 이름의 유닛 테스트 프레임워크 계열의 하나이다. JUnit은 컴파일 타임에 JAR로서 링크된다. 프레임워크는 JUnit 3.8 이하의 경우 junit.framework 패키지 밑에 상주하며, JUnit 4 이상의 경우 org.junit 패키지 밑에 상주한다. 깃허브에 호스팅된 10,000개 자바 프로젝트를 대상으로 한 2013년 수행된 연구 조사에 따르면 JUnit(slf4j-api과 연결된)은 가장 흔히 포함시킨 외부 라이브러리였다. 각 라이브러리는 프로젝트 가운데 30.7%에 사용되었다. (위키백과 참고) JU..

    TDD 테스트 주도 개발

    테스트 주도 개발의 진행 방식 질문(Ask): 테스트 작성을 통해 시스템에 질문한다. (테스트 수행 결과는 실패) 응답(Respond): 테스트를 통과하는 코드를 작성해서 질문에 대답한다. (테스트 성공) 정제(Refine): 아이디어를 통합하고, 불필요한 것은 제거하고, 모호한 것은 명확 히 해서 대답을 정제한다. (리팩토링) 반복(Repeat): 다음 질문을 통해 대화를 계속 진행한다. 은행 계좌(Account Class) 클래스 자판기(Vending Machine) 잔돈 예제 고품질 쾌속개발을 위한 테스트 주도 개발 TDD 실천법과 도구 책을 바탕으로 작성(저자가 절판된 책을 pdf로 공개했습니다 ) 1장 - 테스트주도개발 Test Driven Development 2장 - JUnit and Ham..