-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
문제
1. 의미없는 테스트 (항상 통과)
`test_minutesToDegrees_0minutes_returns0`, `test_secondsToDegrees_0seconds_returns0` 두 테스트는 `0 * 상수 = 0` 이라는 수학적 항등식만 검증합니다. 구현이 어떻게 바뀌어도 0을 넣으면 0이 나오므로 실질적인 보호 효과가 없습니다.
2. 범위 외 입력 테스트 없음
타이머 스펙은 1~59분 설정만 허용하지만, 현재 `AngleConverter`에 guard가 없고 테스트도 없습니다.
AngleConverter.minutesToDegrees(-1) // → -6.0 (음수 각도, 유효하지 않음)
AngleConverter.minutesToDegrees(61) // → 366.0 (360° 초과, 유효하지 않음)
AngleConverter.secondsToDegrees(-1) // → -0.1 (음수 각도)이 입력이 들어왔을 때 AngleConverter가 어떻게 처리해야 하는지 정의되어 있지 않습니다.
왜 문제인가
- 0 테스트는 false confidence를 줍니다 — 통과하더라도 로직이 올바르다는 보장이 없습니다.
- 범위 외 입력에 대한 계약이 없으면, 잘못된 값이 CircularTimerView에 전달될 수 있습니다.
해결 방향
- 0 입력 테스트를 제거하거나 의미 있는 케이스(e.g., 소수점 초 정밀도)로 교체
- 범위 외 입력에 대한 동작 정의:
- Option A: `AngleConverter` 에 clamp 추가 후 경계값 테스트
- Option B: clamp는 호출자 책임으로 두고, 음수/초과 입력 시 반환값을 문서화한 뒤 테스트
- `minutesToDegrees(59)` (최대), `minutesToDegrees(1)` (최소) 경계값 테스트 추가
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels