테스트를 위한 개발 방법론, 테스트 주도 방법론
하나의 API 개발에 n번의 리팩토링이 필요하다.
보통 일반적인 업무라면 프로젝트 기간 후에 개선사항으로 기간을 두고 리팩토링을 한다.
하지만 TDD방식으로 적용을 하자면, 리팩토링은 모두 개발 기간 안에 이루어진다.
TDD의 생명주기
fails - passes - refactor
세가지의 구간에서 어디서든 시작을 하든 한번의 리팩토링이 필요하다.
TDD를 처음해보는 개발자는 기능 성공을 염두해두며 개발부터 생각을 한다. 즉, 에러를 발생하지 않도록 구현하기 때문에 테스트 시 에러발생시키기 어렵다. TDD에 능숙한 개발자는 보통 실패를 염두하고 개발을 한다.
왜냐하면, 성공보다는 에러케이스 발생이 더 어렵기 때문.
> 어떻게 RunTime Exception 발생시키지?, SQL Exception은 어떻게 발생시키지? ... 등
테스트 툴
1. JUnit
메소드 단위로 테스트할 때 용이, Spring Project나 Eclipse 등의 IDE에서 내장하고 있다.
2. Mockito
클래스 단위로 테스트할 때 용이, 메소드의 반환값을 직접 제어할 수 있다.
when(mokedList.get(0)).thenReturn("item");
when(mokedList.size(0)).thenReturn(1);
when(mokedList.get(1)).thenReturn(new RuntimeException());
메소드는?
최대한 작게 도출.
언제나 결과를 예측 가능하게.
심지어 isEmpty() 마저도 분리한다...
'밥줄 > Etc' 카테고리의 다른 글
[angular] angular5 + NGINX (for CentOS) (0) | 2021.04.16 |
---|---|
[Maven] maven 설치(for CentOS) (0) | 2021.04.16 |
[IntelliJ] lombok 적용 (0) | 2021.04.16 |