Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

단위테스트를 해야하는 영역은 어디까지일까?

オープン
#1 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
ドキュメント
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
java
領域
testing-qa

調査の方向性

まず、issue にリンクされた TDD リソースと、本文に含まれている Java service および exception-test の例を確認してください。テストに記載された目的をプロジェクトのテストガイダンスと比較し、そのうえで、どのサービスの動作をカバーすべきかを判断するための明確なルールと、ガイダンスが完全であることを示す証拠を文書化してください。

索引モデルが issue の本文から書いたものです。

説明

TDD

이슈

단위테스트를 진행하면서 단위테스트를 어디까지 진행해야하는지에 대한 의문이 생겼다.

Service단의 단위테스트를 진행할 때 예외 처리 단위 테스트 또한 진행하는데 만약 다음과 같은 코드가 있다면 해당 코드를 단위 테스트를 해주는 것이 과연 효과적인 걸까?

다음은 Service 단의 코드이고

public List<...> getSth(String userId) throws BaseException {
        Users user = usersRepository.findById(userId)
                .orElseThrow(() -> new BaseException(BaseResponseStatus.EMPTY_BY_USER_ID));
...

아래는 해당 메서드의 예외 테스트 코드이다.

    @Test
    @DisplayName("Invalid User Id 테스트")
    void invalid_userId_test() {
        // given
        given(fakeUsersRepository.findById(any())).willReturn(Optional.empty());

        // when
        String userId = "admin";

        // then
        assertThatThrownBy(() -> smtService.getSth(userId))
                .isInstanceOf(BaseException.class);
    }

여기서의 테스트는 UsersRepository에서 Optional.empty()가 나왔을 때 getSth() 메서드 안에 있는 orElseThrow()가 정상작동 하는지를 보는 테스트라고 생각한다.
그렇다면 해당 테스트는 개발자의 손을 벗어난 라이브러리 단의 기능이 정상 작동하는지 테스트하고 있는게 아닐까? 즉 테스트 할 필요가 없는 부분 아닐까?

문제는 일단 개발자가 어디까지 테스트를 해야하는지에 대한 개념이 잡혀있지 않다.
이 개념이 테스트 코드를 작성하는데 가장 중요한데 방법적인 부분만 알고 핵심을 모르고 있다는 생각이 든다.
테스트 코드의 '목적'에 대한 공부가 필요하다.

공부해볼 내용

  1. 테스트 코드를 실행해야 하는 범위
  1. 좋은 테스트 코드란 무엇인가?
  • Clean Code 책을 봐보자
主要言語
言語のデータがありません
スター
0
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

minaver/Daily-Issue のほかの issue

minaver/Daily-Issue の issue をすべて見る

似ている issue

Testing & QA の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。