본문 바로가기

JAVA/SpringTest8

TDD에 대해서 다시 정리 해본다. - Mockito 많은 TDD 프레임워크 중에 현재도 Mockito를 많이 쓴다. Mockito도 많이 쓰지만. private와 protected를 테스트할 때는 powerMock을 애용하기도 한다고한다. 둘의 내용을 다 다루면 좋겠지만, 일단 저는 대중적인 TDD 프레임워크인 Mockito에 대해서 쓰도록 하겠습니다. Mockito 프레임워크의 차별점은 무엇인가? 1. 테스트 그 자체에 집중한다. 테스트의 행위와 반응(interaction)에만 집중해서 테스트 메소드를 작성할 수 있게 한다. 2. 테스트 스텁을 만드는 것과 검증을 분리시켰다. 3. Mock 만드는 방법을 단일화했다. 4. 테스트 스텁을 만들기 쉽다. 5. API가 간단하다. 6. 프레임워크가 지원해주지 않으면 안 되는 코드를 최대한 배제했다. recor.. 2020. 3. 16.
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.