proto-socket/CODE_REVIEW_REVIEW_TEST.md
toki 7f8771b89e refactor: implement HeartbeatMixin for heartbeat handling
- Dart: Replace ResponseChecker with HeartbeatMixin
- Dart: Remove heartbeat-related fields from ProtobufClient/Server
- Dart: Add HeartbeatMixin for cleaner heartbeat logic
- Go: Add timeout test in communicator_test.go
- Go: Add heartbeat_test.go with heartbeat functionality tests
- Go: Add TLS test in tls_test.go
- Go: Add message type mismatch tests
- Go: Improve tcp_test.go and ws_test.go with comprehensive tests
- Dart: Add comprehensive socket_test.dart with multiple test scenarios
- Add untracked documentation files
2026-04-11 16:33:40 +09:00

58 lines
2 KiB
Markdown

# 테스트 보강 리뷰 후속 코드리뷰 참고문서
## 작업 배경
`IMPROVEMENT_PLAN_REVIEW_TEST.md`에 정리된 테스트 보강 리뷰 후속 항목을 반영했다. 핵심은 Dart 라이브러리 코드에 남아 있던 `print()` 제거와, Go 서버 종료 테스트에서 테스트 의도를 흐리는 중복 `Stop()` 호출 정리다.
## 변경 요약
### Dart 서버 로그 제거
- `dart/lib/src/protobuf_server.dart`
- 파일 상단 `avoid_print` suppress 제거.
- `onDisconnectedClient``print('Client disconnected')` 제거.
- `dart/lib/src/ws_protobuf_server.dart`
- 파일 상단 `avoid_print` suppress 제거.
- `onDisconnectedClient``print('WS Client disconnected')` 제거.
라이브러리 코드가 disconnect 이벤트마다 stdout에 직접 로그를 남기지 않도록 정리했다.
### Go 서버 종료 테스트 정리
- `go/test/tcp_test.go`
- `TestTcpServerStopDisconnectsClients` 내부의 `defer server.Stop()` 제거.
- `go/test/ws_test.go`
- `TestWsServerStopDisconnectsClients` 내부의 `defer server.Stop()` 제거.
두 테스트는 본문에서 명시적으로 `server.Stop()`을 호출하고 그 결과로 client disconnect 콜백이 호출되는지 검증한다. 따라서 별도 deferred stop을 제거해 테스트 의도를 더 분명하게 만들었다.
## 검증 결과
```bash
cd dart
dart analyze
```
결과: 통과. `No issues found!`
```bash
cd dart
dart test
```
결과: 통과. 총 39개 테스트 통과.
```bash
cd go
PATH=/config/go-sdk/go/bin:/config/go/bin:$PATH GOCACHE=/tmp/go-build GOMODCACHE=/tmp/go-mod go test ./test/... -v
```
결과: 통과.
## 리뷰 포인트
- Dart 서버 코드에서 `print()` 호출은 제거됐고, 관련 `avoid_print` ignore도 함께 제거됐다.
- Go의 다른 테스트에 있는 `defer server.Stop()`은 각 테스트의 일반 teardown 역할이므로 유지했다.
- `TestTcpServerStopDisconnectsClients`, `TestWsServerStopDisconnectsClients`는 명시적 `server.Stop()` 호출 하나만으로 disconnect 동작을 검증한다.