본문 바로가기 메뉴 바로가기

개발은 꽃

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

개발은 꽃

검색하기 폼
  • 분류 전체보기 (176)
    • Spring (53)
      • SpringBoot 실습 (11)
      • Spring 웹 MVC (14)
      • Spring 핵심 (14)
      • Spring 기초 (8)
      • Spring Boot JPA (2)
    • Java (76)
      • Effective Java (24)
      • Java 기초 (27)
      • 디자인 패턴 (17)
      • The Java (6)
      • Java8 (2)
    • 객체지향 (6)
    • Test (12)
      • JUnit (9)
      • Mockito (3)
    • Network (8)
    • DataBase (15)
    • JavaScript (4)
    • 운영체제 (0)
    • 기타 (2)
      • 일지 (0)
  • 방명록

Test (12)
[Mokito] Mock 객체 Stubbing

Mock 객체 Stubbing Mock 객체의 행동이란, 리턴 값이 있는 메소드는 모두 Null 을 리턴하고 있다. Optional 타입인 경우 Optional.empty로 리턴 Primitive 타입은 모두 Primitive 값을 따르고 있다. Ex. Boolean인 경우 'false' / Integer 혹은 Long인 경우 0 Collection의 경우 모두 비어있는 Collection을 가지고 있다. Void 메소드의 경우 예외를 던지지 않고 아무 일도 발생하지 않는다. Stubbing이란, Mock 객체의 행동을 조작하는 것을 말한다. Mock객체의 when 메소드를 활용하여 Stubbing을 진행해보자. Ex. 리턴값이 있는 when 메소드 활용 1 @Mock MemberService membe..

Test/Mockito 2021. 6. 13. 20:05
[Mockito] Mock 객체 만들기

Mock 객체 만들기 Mock 객체는 언제 만들까? Service에서 인터페이스를 참조하는데, 로직을 구성할 때 해당 인터페이스에 있는 메소드들을 가져와 로직을 구성하고자 한다. 그러나 인터페이스의 구현체는 따로 구현되어 있지 않다. 이럴 때, 인터페이스가 구현되어 있다는 가정하에 구성한 Service 로직을 실행하고자 할 때 Mock 객체를 만들어 테스트 한다. 이 때, Mock 객체는 참조하는 인터페이스가 되는 것이다. Mock 객체를 만들어보자 @Test void createStudyService() { //1. memberService와 studyRepository를 파라미터로 받아 우리가 구성한 service를 테스트해보려고 하는데, // memberService와 studyRepository는..

Test/Mockito 2020. 2. 19. 01:23
[Mockito] Mockito

Mockito Mock : 진짜 객체와 비슷하게 동작하지만, 프로그래머가 직접 그 객체의 행동을 관리하는 객체. Mockito : Mock 객체를 쉽게 만들고 관리하고 검증할 수 있는 방법을 제공한다. DB, API 호출 시 API 및 DB를 Mock 객체로 만들고 각각의 행동들이 어떻게 동작할지에 대해 Mockito를 사용해서 코딩하며 테스트를 진행한다. - 실제 API가 없거나 DAO나 Repository가 구현되어 있지 않아도 테스트가 가능하다. 스프링 부트와 스프링 부트가 아닐 때 Mockito 1. 스프링 부트를 사용 시 2.2 버전 이후에는 spring-boot-starter-tesat에서 자동으로 Mockito를 추가해준다. 2. 스프링 부트가 아닌 경우 org.mockito mockito-..

Test/Mockito 2020. 2. 19. 01:19
[JUnit5] 테스트 인스턴스

JUnit 5: 테스트 인스턴스 테스트 메소드마다 새로운 인스턴스를 만들어 실행한다. //테스트 인스턴스 int value = 1; @Test @DisplayName("스터디 만들기 테스트 인스턴") void testInstance() { System.out.println(this); System.out.println(value++); } @Test @DisplayName("스터디 만들기 테스트 인스턴스 ") void testInstance2() { System.out.println(this); System.out.println(value++); } value 값을 1로 선언 후 각 테스트 메소드에서 value를 증가하여 각각 2 또는 3 이 출력될 거 같지만 결과는 다르다. 둘 다 1이라는 결과가 나타..

Test/JUnit 2020. 2. 19. 01:15
[JUnit5] JUnit 5 : 테스트 반복하기 2

JUnit 5 : 테스트 반복하기 2부 인자 값들의 소스 @ValueSource 파라미터를 나열한다. @NullSource, @EmptySource, @NullAndEmptySource 기존 파라미터에 Null 혹은 빈값의 파라미터를 추가할 수 있다. @EnumSource @MethodSource @CsvSource @CsvFileSource @ArgumentSource 인자 값 타입 변환 암묵적인 타입 변환 명시적인 타입 변환 @ValueSource로 선언한 파라미터(@ValueSource(ints {10, 20, 40}))를 객체의 생성자에 파라미터로 하여 객체를 생성한 후 객체로 접근하여 가져온 값들을 테스트에서 확인해보자. 즉, 커스텀한 타입으로 변환하여 파라미터를 받고자 할 땐, Converte..

Test/JUnit 2020. 2. 18. 01:22
[JUnit5] 테스트 반복하기

JUnit : 테스트 반복하기 어떤 테스트에 대해서 반복적으로 테스트를 진행할 수 있다. @DisplayName("스터디 만들기") @RepeatedTest(value = 10, name = "{displayName}, {currentRepetitions}/{totalRepetitions}" ) void create_study(RepetitionInfo repetitionInfo) { System.out.println("test" + repetitionInfo.getCurrentRepetition() + "/" + repetitionInfo.getTotalRepetitions()); } {displayName} : @DisplayName {currentRepetitions} : 현재 반복한 횟수 {tot..

Test/JUnit 2020. 2. 18. 01:19
[JUnit5] 커스텀 태그

JUnit5 : 커스텀 태그 JUnit에서 제공하는 어노테이션들을 메타 어노테이션으로 사용할 수 있다. 즉, 사용자가 만든 어노테이션에 JUnit 어노테이션을 넣어 사용할 수 있다는 것이다. //사용자 정의 어노테이션 //FastTest @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Test @Tag("fast") public @interface FastTest { } //SlowTest @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Test @Tag("slow") public @interface FastTest { } @FastTest @DisplayName("스터..

Test/JUnit 2020. 2. 18. 01:17
[JUnit5] 태깅과 필터링

JUnit 5 : 태깅과 필터링 각 테스트 그룹을 만들고, 원하는 테스트 그룹만 테스트를 진행할 수 있는 기능이다. 여러 조건으로 우리가 원하는 태그를 붙여 해당 태그를 지정하여 테스트를 진행할 수 있는 것이다. @Tag 테스트 메소드에 태그를 추가할 수 있다. 하나의 테스트 메소드에 여러 태그를 사용할 수 있다. 소스로 확인해보자 Fast 태그와 slow 태그를 사용하여 용도에 맞게 테스트를 진행해보자 즉, 실행결과가 빠르게 나타나는 테스트를 fast, 실행결과가 느리게 나타나는 테스트는 slow로 가정하자 @DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) public class TagTest { @Test @DisplayNam..

Test/JUnit 2020. 2. 18. 01:14
이전 1 2 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • junit
  • effectivejava
  • jdk버전
  • 생성자
  • 복사 팩토리
  • 스프링부트
  • 빌더 패턴
  • 점층적 생성 패턴
  • 이펙티브자바
  • 자바8
  • try with resources
  • JPA
  • Spring
  • springboot
  • try catch finally
  • 연관관계
  • java
  • 정적팩터리메서드
  • 빈 순환 참조
  • mustache
  • ifPresent
  • 이펙티브 자바
  • @Lazy
  • 인프런
  • package-private
  • 김영한
  • 팩토리 메소드 패턴
  • Effective Java
  • flatMap
  • java8
more
«   2026/02   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바