TDD 기본 싸이클 작성
TDD 싸이클 돌려보기(덧셈계산기)
📜 제목으로 보기
TDD 싸이클
- TDD 구현
- 싸이클
-
fail떨어지는test코드생성- case별로 메서드_이름을 표기하여 작성한다.
-
main(프로덕션)코드 작성 후 pass
- 2번째부터는 개별 pass -> 전체pass 순으로 확인
- refactoring(rename부터 시작)
-
- 싸이클
-
test에서 package > XXXTest class를 먼저 만든다.

-
generate(alt+insert)기능으로@test로 생성 -
메서드_명은 한글명으로 해도 되고, 단위테스트가 의미하는 바만 잘 나타내면된다. 여기선여러 경우 중 1가지(구분자 없는) 경우로 시작을 한다.

-
- 클래스명 + 메소드명을 먼저 사용하여 할당을
반환형 actual변수로 받은 뒤
-
given(값 -> 변수 선언 등) ->when(actual까지 로직) ->then( asesertThat(actual).isEqualTo(expected))// given String data = "(1,2)"; // when String result = data.substring(1, data.length()-1); // then assertThat(result).isEqualTo("1,2");
-
-
assertThat( actual ).isEqualTo( )에서 인자에 예상값(우리가 원하는 값)을 넣는다.
-
SC 없는 클래스를 만들 되,
미리 main쪽에 package를 만들어 놓은 상태에서 -> 생성경로를main으로 바꿔준다.

- test > package >
XXXTestclass - 내부 XXX클래스.메서드() —> main > package >
XXXclass로 생성 -
test에만 존재하는 package를 선택하면, main에 못만드니 미리 만들어놔야한다.
- test > package >
-
**클래스 생성 직후 바로 돌아와(
Back기능 ctrl+u) method도 만들어준다 **-
이 때,
actual(1)을 반환하지 않는 불완전한 메소드를수정없이 test실행부터해서Error를 낸다

-
-
test코드(SCTest)가
pass하도록 프로덕션코드(main코드, SC)를 수정한다.

-
pass한 프로덕션 메소드를
refactoring한다.-
파라미터 이름바꾸는 것도F2=refactoring
- @test 막 사용했던
class이름(XXX)바꾸는 것도 F2 = refactoring- 이 때,
test class이름 XXXTest도 바꾸자고 권유한다.
- 이 때,
-
-
더이상 refactoring할게 없다면 -> 새로운 단위테스트를 클래스.메소드()부터 만들어서 나아간다.
-
직전에 만든 테코랑 비슷하다면, 복붙해서 시작한다.
-
테케는 가능한 가장 작은 단위를 만드는 경우며, 케이스 ->
if 상황별 새로운 메소드로 나누고 -> 상황에 맞게인자 변경->expected- 구분자 없음 -> “1” -> 1
- 컴마 구분자 -> “1,2” -> 3

-
-
다음 테케도 프로덕션 코드 수정없이 일단 돌려서 fail을 떨어뜨린 뒤-> 에러보고 참고하여 찾아가서 수정

-
해당 테케실행 -> 전체 테케도 실행해서 전체 통과하는지 확인을 한다.

-
pass후엔 refactoring하기
-
for문으로 들어가는 indent ->
메소드 추출 refactoring-
return문까지 잡아서 추출해보기(
alt+ctrl+m-> 안되면ctrl+.)
-
-
-
input/output이 명확한 쉬운 TDD였다.
- 자동차 경주를 하려면, 너무 힘들 것
- 단위테스트만 만들어서 해볼 것
- fail하는 test생성 -> 프로덕션수정으로 pass -> refactoring