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

2 KiB

테스트 보강 리뷰 후속 코드리뷰 참고문서

작업 배경

IMPROVEMENT_PLAN_REVIEW_TEST.md에 정리된 테스트 보강 리뷰 후속 항목을 반영했다. 핵심은 Dart 라이브러리 코드에 남아 있던 print() 제거와, Go 서버 종료 테스트에서 테스트 의도를 흐리는 중복 Stop() 호출 정리다.

변경 요약

Dart 서버 로그 제거

  • dart/lib/src/protobuf_server.dart

    • 파일 상단 avoid_print suppress 제거.
    • onDisconnectedClientprint('Client disconnected') 제거.
  • dart/lib/src/ws_protobuf_server.dart

    • 파일 상단 avoid_print suppress 제거.
    • onDisconnectedClientprint('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을 제거해 테스트 의도를 더 분명하게 만들었다.

검증 결과

cd dart
dart analyze

결과: 통과. No issues found!

cd dart
dart test

결과: 통과. 총 39개 테스트 통과.

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 동작을 검증한다.