Mockito.doNothing()

2021. 7. 21. 16:36·Programming

비즈니스 로직 구현상의 편의와 하위 호환성을 위해 아무것도 하지 않는 메서드를 호출하게 되는 경우가 있다.

 

public abstract class Beer {

    private String name;
    private LocalDateTime expirationDate;

    abstract void addAlcohol(int amount);
}

 

주류회사의 서비스이고, Beer 클래스의 구현체가 굉장히 많다고 가정하자.

비즈니스 로직에는 반드시 addAlcohol()을 호출하고 있다.

 

public class Coffee extends Beer {

    @Override
    void addAlcohol(int amount) {
        // do nothing
    }
}

그런데 갑자기 커피를 만들어 팔려고 한다면...?

커피는 알코올이 들어가지 않으니깐 메서드를 오버라이드하고 빈 상태가 된다.

이렇게 하면 기존 코드에서 분기문이 나오거나, 혹은 유효성 체크를 할 필요가 없어진다.

 

Mockito.doNothing() 

@Test
    void addAlcohol() {
        Coffee coffee = Mockito.mock(Coffee.class);
        Mockito.doNothing().when(coffee).addAlcohol(0);
        
    }

Mockito의 메서드인 doNothing()을 사용해 테스트 코드의 의도를 표현할 수 있다.

 

빈 메서드에 대한 테스트 코드를 작성해야 하는지는 의문이다.

작성하지 않으면 커버리지에 반영되지 않지만 의미가 있는지는 잘...

'Programming' 카테고리의 다른 글

N*N, N**2, pow(N, 2), math.pow(N,2)  (0) 2021.08.06
[2021 ver.] 서버 개발자 mac 장비 설정  (1) 2021.08.02
Class.isAssignableFrom  (0) 2021.07.20
Chapter9. 디플로이먼트: 선언적 애플리케이션 업데이트  (0) 2021.07.19
@cache  (1) 2021.06.28
'Programming' 카테고리의 다른 글
  • N*N, N**2, pow(N, 2), math.pow(N,2)
  • [2021 ver.] 서버 개발자 mac 장비 설정
  • Class.isAssignableFrom
  • Chapter9. 디플로이먼트: 선언적 애플리케이션 업데이트
Doljae
Doljae
  • Doljae
    Zero to Hero
    Doljae
  • 전체
    오늘
    어제
    • 분류 전체보기 (349)
      • Programming (54)
      • Algorithm (161)
      • Review (102)
      • Career (8)
      • Diary (18)
      • Shorts (4)
      • Temp (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글 쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    면접
    인프콘
    line
    컨퍼런스
    AI
    java
    회고
    프로그래머스
    코딩테스트
    공채
    2022
    나는 리뷰어다
    ChatGPT
    코딩
    2023
    백준
    sql튜닝
    database
    BOJ
    db
    leetcode
    sql
    jpa
    2021
    PYTHON
    mysql
    라인
    한빛미디어
    개발자
    나는리뷰어다
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Doljae
Mockito.doNothing()
상단으로

티스토리툴바