단위테스트를 해야하는 영역은 어디까지일까?
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 25/100
- Issue 类型
- 文档
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
- 技术栈
- java
- 领域
- testing-qa
调研方向
首先查看 issue 中链接的 TDD 资源,以及正文中包含的 Java service 和 exception-test 示例。将测试所述的目的与项目的 testing 指南进行比较,然后记录一条明确的规则,用于决定应覆盖哪些 service 行为,以及哪些证据能够表明该指南已经完整。
由索引模型根据 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 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
minaver/Daily-Issue 的其他 Issue
-
MSA에 대하여未关闭Spring
难度 5/5 一周以上 新手友好度 20/100
minaver/Daily-Issue#10 · 1 条评论 ·
-
DB Spring
难度 5/5 一周以上 新手友好度 20/100
minaver/Daily-Issue#9 ·
-
Java Spring
难度 5/5 一周以上 新手友好度 20/100
minaver/Daily-Issue#7 ·
-
TDD
难度 5/5 一周以上 新手友好度 20/100
minaver/Daily-Issue#5 · 1 条评论 ·
-
Tech
难度 5/5 一周以上 新手友好度 25/100
minaver/Daily-Issue#3 ·
查看 minaver/Daily-Issue 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
-
difficulty: easy good first issue help wanted mentor available testing
难度 1/5 1-3 小时 新手友好度 90/100
hayagrivai-labs/sciproof#151 ·
维护者通常 1 天内回复
-
[BUG] `_extract_tool_name_from_span` ignores `gen_ai.tool.name`, so ToolCorrectness fails on Google ADK traces可能已有人在做 @mlflow-app 今天认领。 未关闭area/evaluation area/tracing bug has-closing-pr triage: reproduced
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
status: needs triage
难度 2/5 1-3 小时 新手友好度 78/100
mastra-ai/mastra#28493 · 2 条评论 ·
维护者通常 1 天内回复
-
? - Needs Triage audit_4.2.0 feature request test
难度 2/5 1-3 小时 新手友好度 87/100
NVIDIA/cudf-spark#16614 ·
维护者通常 1 天内回复