본문 바로가기

JAVA30

TDD에 대해서 다시 정리 해본다. - Mock 만약 아직 db 개발이 안 돼있고, 기능을 우선적으로 개발한다고 치면, TDD를 할 때 Mock을 이용하면 좋다. Mock이란 이름과 같이 모조품을 말한다. 기능을 우선적으로 개발하게 되면 데이터 값을 넣어야 하는데 이 데이터 값을 모조품인 Mock객체로 넣는다고 생각하면 된다. 실제 객체를 만들기엔 비용과 시간이 많이 들거나 의존성이 길게 걸쳐져 있어 제대로 구현하기 어려울 경우, 이런 가짜 객체를 만들어 사용한다 책에서 Mock의 정의가 이렇게 써져있다. (이 책.. 왜 절판된건지 궁금하다 내용면으로 너무 괜찮은 책인데. 좀 더 추가 생산했으면 안 됐나 ㅠ..) 암튼 Mock은 1. 테스트 작성을 위한 환경 구축이 어려워서 2. 테스트가 특정 경우나 순간에 의존적이라서 이 두가지 경우라고 한다. 테스.. 2020. 3. 16.
TDD에 대해서 다시 정리 해본다. - 테스트 케이스 위치 및 방법 요번시간에는 테스트케이스의 위치 및 방법에 대하여 쓰려고 한다. 테스트케이스의 위치이다. 사람에 따라 테스트케이스 위치가 다르다고 하지만, 일단! 나는 TDD에 대해서 초보이기 때문에 가장 대중적이고, 글쓴이가 추천하는 위치에다가 테스트케이스를 만드려고 한다. 추천하는 위치는 어디일까? 소스 폴더는 다르게 패키지는 동일하게, 컴파일된 클래스는 서로 다른곳이라고 한다. 책저자가 말하는 구조와 장단점 또한 클래스는 어떻게 쓸까? 우리는 흔히 클래스를 쓸 때 public void getMoney 이런식으로 쓴다. 하지만 public void Money_이체로 책 저자는 추천을 한다. 왜일까? 바로 이러한 이유 때문이라고 한다. 또한 어떻게 TDD를 작성할것인가는 - 결과가 옳은가? - 모든 경계조건이 옳은가?.. 2020. 3. 16.
TDD에 대해서 다시 정리 해본다. - hamcrest 이제 hamcrest에 대해서 알아보려고 한다. hamcrest란? jMock이라는 Mock라이브러리 저자들이 참여해 만든 Matcher라이브러리이며 테스트 표현식을 작성할 때 좀 더 문맥적으로 자연스럽고 우아한 문장으로 만드는 것을 도와준다. 여기서.. 우아한 문장이라니... 나는 프로그래밍 언어가.. 우아하다는 것을 아직 모르겠다.. 머.. 어찌어찌 이렇고 저렇고 생활언어에 가까운 테스트 케이스가 만들어진다고 한다.. 즉 junit에는 assetEquals가 있다 그러면 hamcrest는 무엇으로 변경했을까? 바로 assertThat이다. 사용법은? assertThat(테스트대상, Matcher 구문); , assertThat("메시지", 테스트대상, Matcher구문); assertEquals(10.. 2020. 3. 13.
TDD에 대해서 다시 정리 해본다. - junit4 TDD란 무엇일까? 업무 코드를 작성하기 전에 테스트 코드를 먼저 만드는 것!이라고 한단다. 테스트 주도 개발의 진행 방식은 질문 -> 응답 -> 정제 -> 반복으로 간다고 한다. 테스트를 작성을 하면 실패/ 성공 요인에 따라서 다시 수정하고 수정한 것에 대해 실패/ 성공 요인을 다시 살펴보고, 만약에 실패하면 다시 수정하고, 성공하면 냅두고, 추후 유지보수를 하거나 수정사항이 있으면 또다시 성공하는 즉, 무한루프의 구조를 가지게 된다. 이렇게 무한루프의 구조를 가지고 있기 때문에, TDD 실패에 대해서 무서워하면 안된다. 왜냐면 실패하면 우리는 어차피 이것을 성공을 만들어야 하기 때문이다. 또한.. 이 TDD라는 프레임워크 중에 junit4가 있는데, junit4를 통해서 클래스를 만들면 녀석이.. 실.. 2020. 3. 13.