본문 바로가기

Spring5

[테스트 주도 개발 시작하기] 부록C. Mockito 기초 사용법 Mockito 프레임워크모의 객체 생성, 검증, stub을 지원하는 프레임워크 의존 설정JUnit과 Mockito는 서로 독립적이기 때문에, 버전 간 의존성은 없기 때문에 최신에 안정된 버전을 선택하면 된다.https://mvnrepository.com/artifact/org.mockito/mockito-core 모의 객체 생성Mockito.mock() 메서드를 이용하면 특정 타입의 모의 객체를 생성할 수 있다. [Mockito.mock() 메서드를 이용한 모의 객체 생성]public class GameGenMockTest { @Test void mockTest() { GameNumGen genMock = mock(GameNumGen.class); }}public interf.. 2024. 9. 9.
[테스트 주도 개발 시작하기] Chap05 JUnit5 기초 JUnit 5 모듈 구성JUnit5 모듈은 아래 세가지로 구성된다.JUnit Platform테스팅 프레임워크를 구동하기 위한 launcher와 test engine을 위한 API 제공JUnit JupiterJUnit 5를 위한 테스트 API와 실행 엔진을 제공JUnit VintageJUnit3과 4로 작성된 테스트를 JUnit5 platform에서 실행하기 위한 모듈 제공  gradle의 test 관련 설정에서 JUnit5의 platform과 jupiter에 대해 살펴볼 수 있다.  plugins { id 'java'}group = 'org.example'version = '1.0-SNAPSHOT'repositories { mavenCentral()}dependencies { testIm.. 2024. 9. 3.
[테스트 주도 개발 시작하기] Chap04 TDD-기능 명세-설계 기능명세다양한 형태의 기능명세를 통해 설계를 시작할 수 있다.기능 명세를 구체화하여 입력과 결과를 도출하고, 코드에 반영하는 과정에서 기능(함수)의 이름, 파라미터, 리턴타입등이 결정된다.  설계 과정을 지원하는 TDDTDD를 적용하여 테스트코드를 먼저 작성하기 위해서는 다음 두 가지를 할 수 있어야 한다.테스트할 기능을 실행테스트할 기능을 실행하기 위해서는 다음 항목을 설계해야 한다.테스트 대상이 되는 클래스와 메서드메서드의 인자 타입과 개수실행 결과를 검증실행 결과를 검증하기 위해서는 다음 항목을 설계해야 한다.검증하려는 메서드의 리턴값리턴값이 없다면 메서드의 실행결과를 검증할 수 있는 별도의 메서드 혹은 변수 등아래 예시를 통해 구체화해 보자.  테스트 코드를 통한 설계 과정 예시chap02에서 구.. 2024. 9. 1.
[테스트 주도 개발 시작하기] Chap03 테스트 코드 작성 순서 저번 chpater에서는 TDD의 흐름(Red - Green - Refacotr)에 대해서 알아봤다. 이번 chpater에서는 TDD의 테스트 코드 작성 순서에 대해서 알아본다. 1. 테스트 코드 작성 순서 1-1. 초반에 복잡한 테스트부터 시작하면 안 되는 이유복잡한 테스트부터 시작할 때의 단점테스트를 통과시키기 위해 한 번에 구현해야 할 코드가 많아진다.구현하는데에 쉬운 테스트보다 시간이 많이 필요하다.한번에 많은 구현은 버그를 유발할 가능성이 높다.다음 테스트가 원활히 진행되지 않을 수 있다.chapter2의 요구사항을 토대로 다음 예시를 통해 복잡한 테스트부터 시작할 때의 단점을 실제로 확인해보자.더보기요구 사항문자열을 검사해서 아래 조건 모두를 충족하면 '강함', 두 가지만 충족하면 '보통', .. 2024. 9. 1.
[테스트 주도 개발 시작하기] Chap02 TDD TDD란?기능을 검증하는 테스트 코드를 먼저 작성하고 테스트를 통과시키기 위해 개발을 진행하는 개발 방법  TDD 예제 코드요구 기능암호검사기요구 사항문자열을 검사해서 아래 규칙 모두를 충족하면 '강함', 두 가지만 충족하면 '보통', 한가지만 충족하면 '약함'으로 구분암호 검사 규칙- 길이가 8글자 이상 - 0부터 9 사이의 숫자를 포함 - 대문자 포함참고: 테스트 케이스가 많아 중간중간 생략하고 TDD의 흐름을 볼 수 있는 코드 위주로 작성했다.  첫 번째 테스트: 모든 규칙을 충족하는 경우첫번째 테스트를 선택할 때에는 가장 쉽거나 가장 예외적인 상황을 선택해야 후에 진행과정이 수월하다.암호 검사기에서 가장 쉽거나 예외적인 상황모든 규칙을 충족하는 경우 (조건 검사 코드 없이 ‘강함’에 해당하는 값을.. 2024. 8. 29.