일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- springboot
- PG-Strom
- PostgreSQL
- Maven Project
- HTML Special Entity
- NestJS
- JSP
- maven
- typeorm
- BRIN
- Next.js
- Spring Boot
- Windows 10
- 서브라임 텍스트
- orioledb
- loadcomplete
- STS
- tortoise SVN
- NextJs
- Java
- OGM
- Eclipse
- exit code = -805306369
- MariaDB
- Can't load AMD 64-bit .dll on a IA 32-bit platform
- Spring
- tomcat
- Spring Cloud
- graph database
- HTML Code
- Today
- Total
목록개발/TDD (5)
Undergoing
규율이라고 글로벌하게 정해진 것은 아니고, 준수했을 경우 서로 편해지고 향후 테스트를 할 경우 좀 더 객관성있게 할 수 있는 몇 가지 약속들이 책에 서술되어 있길래 각인해야 할 때마다 보기 위해 적어둔다. - public API의 시그너처는 절대 변경하지 않는다. API는 계약의 일부이다. - 종속성을 줄여라. 종속된 상태로 계속해서 클래스를 생성하면 테스트가 복잡해진다. - 생성자는 간단하게 만들어라. - 최소 지식의 원칙(The Law of Demeter)을 준수하라. - 숨겨진 종속성 및 전역 상태를 파악하라. - 제너릭 메서드를 이용하라. - 상속보다 컴포지션을 활용하라. - 조건 분기보다는 다형성을 사용하라.
예외 처리 테스트는 매우 중요한 기법이다. 의도치 않은 상황까지 고려하여 미연에 방지하고 프로그래밍해야 하기 때문이다. 하지만 임의로 오류 상황을 만드는 데에는 많은 시간이 소요된다. 또한 수동으로 만들어내지 못하는 오류도 얼마든지 있다. 따라서 요구사항에 예외 처리를 포함하는 것은 매우 중요하다. 다음은 예외 상황을 만들어주는 요청 핸들러이다. private class SampleExceptionHandler implements RequestHandler{public Response process(Request request) throws Exception{throw new Exception("프로세싱 요청 중 에러 발생");}} 이를 포함하여 테스트 메서드를 만들어 핸들러를 등록하고 요청을 처리해보자..
앞 포스팅에서 DefaultController 클래스를 인스턴트화 하는 부분을 테스트해 볼 것이다. 일단 DefaultController 객체를 생성하고 테스트 작성을 위한 프레임워크를 set-up 한다. TestDefaultController.java public class TestDefaultController {private DefaultController controller;@Beforepublic void instantiate() throws Exception{controller = new DefaultController();} @Testpublic void testMethod(){throw new RuntimeException("implement me");}} DefaultController ..
컨트롤러는 다음과 같은 역할을 수행한다. - 요청을 수락- 요청에 따른 공통 연산 수행- 적절한 request handler 선택- 핸들러가 관련 비즈니스 로직을 수행할 수 있도록 요청 routing- 오류나 예외 처리를 위한 최상위 핸들러 제공 표현/비즈니스 계층 패턴 등 여러 분야에서 컨트롤러가 광범위하게 사용됨을 인지한다면, 컨트롤러의 기본적인 작성법은 숙지해야 할 것이다. 기본적인 인터페이스(요청하고, 요청 핸들러에 전달하고, 응답 개체를 반환한다)는 다음 소스처럼 구현될 수 있다. Request.java public interface Request{String getName();} Response.java public interface Response{ } RequestHandler.java p..
* Reference : JUnit in Action, Second Edition(국내번역판) JUnit은 자바 프로그래밍 언어로 짜여진 유닛 테스팅 프레임워크로, 테스트 주도 개발(TDD. Test-Driven Development)에서 중요하게 여겨진다. 자동화 테스트를 위한 전용 프레임워크의 필요성을 중히 여긴 에릭 감마와 켄트 벡이 제작하였다. * Framework : 거의 완성된 애플리케이션. 여러 애플리케이션에서 공유할 수 있는 재활용 가능하고 보편적인 구조를 제공함. 응집성 높은 구조를 제공한다는 점에서, 단순 유틸리티 클래스의 집합인 툴킷과 구분 JUnit은 오픈소스 소프트웨어로, http://www.junit.org 에서 다운로드 받을 수 있다. But Myeclipse를 설치했다면 기본..