728x90
반응형

테스트/0+ JUnit 6

[JUnit] 회원가입 API 컨트롤러, 서비스, 리포지토리 테스트 예제

[JUnit] 회원가입 API 컨트롤러, 서비스, 리포지토리 테스트 예제 인프런에서 박우빈님의 [Practical Testing: 실용적인 테스트 가이드] 강좌를 들으면서 강의 내용을 복습할 겸 테스팅하는 방법에 대하여 공유하고자 합니다. 좋은 강의 만들어주신 우빈님 감사합니다.^^ 들어가기에 앞서 여러분은 테스트 하면 어떤 생각이 떠오르나요? 라는 질문을 받았습니다. 저의 머리속에는 “귀찮다.” 라는 생각이 떠올랐습니다. 그런데 강의에서도 귀찮다. 라고 소개했습니다. 😲 (독심술이 있으신건가…?) 그렇습니다. 테스트는 매우 귀찮은 작업입니다. 기능 구현하는데 시간이 모자른데 테스트 코드까지 작성해야 한다? 에바지~ 라는 생각이 먼저 듭니다. 그리고 무엇보다 테스트는 귀찮습니다. (일반적으로 개발자는 귀..

테스트/0+ JUnit 2023.06.09

[JUnit5] 인스턴스 테스트와 테스트 순서대로 실행하는 방법

[JUnit5] 인스턴스 테스트와 테스트 순서대로 실행하는 방법 인스턴스 테스트 🎲 독립 시행 JUnit의 기본전략은 테스트 메소드 마다 테스트 인스턴스를 새로 생성합니다. 코드로 보면 바로 이해가 되실것 입니다. public class InstanceTest { int value = 1; @Test @DisplayName("value를 1증가 했기 때문에 2가 된다.") void test1() { System.out.println(this); // 메소드 해시 value++; // 1증가 Assertions.assertEquals(2, value); } @Test @DisplayName("value를 1증가 했기 때문에 3 된다.") void test2() { System.out.println(this..

테스트/0+ JUnit 2023.05.17

[JUnit5] 테스트 인자 값 타입 변환하는 방법

[JUnit5] 테스트 인자 값 타입 변환하는 방법 인자 값 타입 변환 JUnit에서는 인자값을 타입 변환하여 테스트를 할 수 있습니다. 종류로는 암묵적인 타입 변환이 있고, 명시적인 타입 변환이 있습니다. 명시적인 타입변환은 우리가 커스텀하게 사용하여 타입변환을 한다는 의미 입니다. 먼저 테스트에 사용할 Study 클래스 입니다. @Data public class Study { private StudyStatus status; private int limit; private String name; public Study(int limit) { this.status = StudyStatus.DRAFT; if(limit < 0) { throw new IllegalArgumentException("limit..

테스트/0+ JUnit 2023.05.17

[JUnit5] 환경변수 조건에 따라 테스트 실행하는 방법

[JUnit5] 환경변수 조건에 따라 테스트 실행하는 방법 환경변수 조건을 만족하는 경우에 테스트 실행 환경변수에 따라 테스트를 실행하는 코드를 작성해보겠습니다. 환경변수 설정 저는 macOS를 사용하고 있고 zsh를 사용하고 있습니다. $ vi ~/.zshrc 파일을 열고 export TEST_ENV=LOCAL 를 입력합니다. # If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin:$PATH # Path to your oh-my-zsh installation. export ZSH="/Users/jangsea-ung/.oh-my-zsh" export PATH=/opt/homebrew..

테스트/0+ JUnit 2023.05.05

[JUnit5] Assertions 기본 사용법

[JUnit5] Assertions 기본 사용법 Jupiter에서 제공하는 Assertions에 대해서 알아보자. 자주 사용하는 Assertions assertEqulas(expected, actual) 실제 값이 기대한 값과 같은지 확인 assertNotNull(actual) actual이 null이 아닌지 assertTrue(boolean) 조건이 참(true)인지 확인 assertAll(executables…) 모든 확인 구문 확인 assertThrows(expectedType, executable) 예외 발생 확인 assertTimeout(duration, executable) 특정 시간 안에 로직이 완료되는지 확인 로직이 완료될 때 까지 기다림 assertTimeoutPreemptively(ex..

테스트/0+ JUnit 2023.05.05

[JUnit5] JUnit5 기본 어노테이션

[JUnit5] JUnit5 기본 어노테이션 💬 학습에 들어가기에 앞서 요즘 취업 공고를 보면 많은 기업들이 단위 테스트, 통합 테스트 작성 경험을 자격 요건으로 공고를 내놓는 경우가 있습니다. 왜 이러한 경험을 요구할까요? 🤔 먼저, 테스트는 에러가 있다는 것은 보여줄 수 있지만, 에러가 없다는 것을 보여줄 수 없습니다. 저 역시 에러가 없는 애플리케이션은 존재하지 않는다고 생각합니다. 그러면 모든 에러를 처리할 수 없으니 그냥 방치하는게 좋을까요? 아니라고 생각합니다. 예상할 수 있는 에러는 처리하도록 설계하는 것이 좋다고 생각합니다. 그래서 기업들이 테스트 코드를 작성 경험을 요구하는 것 같습니다.😃 또한, 기업의 서비스의 규모가 커지면서 많은 개발자들이 필요하고, 많은 개발자들이 함께 지속 가능한..

테스트/0+ JUnit 2023.05.04
728x90
반응형