단위테스트를 해야하는 영역은 어디까지일까?
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- ドキュメント
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- java
- 領域
- testing-qa
調査の方向性
まず、issue にリンクされた TDD リソースと、本文に含まれている Java service および exception-test の例を確認してください。テストに記載された目的をプロジェクトのテストガイダンスと比較し、そのうえで、どのサービスの動作をカバーすべきかを判断するための明確なルールと、ガイダンスが完全であることを示す証拠を文書化してください。
索引モデルが issue の本文から書いたものです。
説明
이슈
단위테스트를 진행하면서 단위테스트를 어디까지 진행해야하는지에 대한 의문이 생겼다.
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()가 정상작동 하는지를 보는 테스트라고 생각한다.
그렇다면 해당 테스트는 개발자의 손을 벗어난 라이브러리 단의 기능이 정상 작동하는지 테스트하고 있는게 아닐까? 즉 테스트 할 필요가 없는 부분 아닐까?
문제는 일단 개발자가 어디까지 테스트를 해야하는지에 대한 개념이 잡혀있지 않다.
이 개념이 테스트 코드를 작성하는데 가장 중요한데 방법적인 부분만 알고 핵심을 모르고 있다는 생각이 든다.
테스트 코드의 '목적'에 대한 공부가 필요하다.
공부해볼 내용
- 테스트 코드를 실행해야 하는 범위
- 좋은 테스트 코드란 무엇인가?
- Clean Code 책을 봐보자
- 主要言語
- 言語のデータがありません
- スター
- 0
- フォーク
- 0
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
minaver/Daily-Issue のほかの issue
-
MSA에 대하여オープンSpring
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
minaver/Daily-Issue#10 · コメント 1 件 ·
-
DB Spring
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
minaver/Daily-Issue#9 ·
-
Java Spring
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
minaver/Daily-Issue#7 ·
-
TDD
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
minaver/Daily-Issue#5 · コメント 1 件 ·
-
Tech
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
minaver/Daily-Issue#3 ·
minaver/Daily-Issue の issue をすべて見る
似ている issue
-
enhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
agent-research agent-review-finding chore
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
jordansmall/spindrift#4920 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
crazy-goat/rabbit-stream#799 ·
メンテナーはふだん 1 日以内に返信
-
good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
OktoLabsAI/okto-pulse#114 ·
メンテナーはふだん 1 日以内に返信
-
beginner friendly community contributions-welcome good first issue hacktoberfest help wanted testing up-for-grabs
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信