単体テストを実装するには、単純なクライアント サーバー通信が必要です。
私の手順:
- サーバー スレッドの作成
- サーバースレッドがサーバーソケットをリッスンモードにするのを待ちます ( serverSocket.accept() )
- クライアントの作成
- いくつかのリクエストを行い、レスポンスを確認します
基本的に、ステップ 2 に問題があります。サーバーソケットが「リッスン」状態になったときに通知する方法が見つかりません。この場合、「accept」への非同期呼び出しが行われますが、Java はこれをサポートしていません (非同期チャネルのみをサポートしているようで、ドキュメントによると「accept()」メソッドと互換性がありません)。
もちろん、単純な「スリープ」を入れることはできますが、それは本番コードの実際の解決策ではありません。
要約すると、スリープやポーリングを使用せずに ServerSocket がリッスン モードになったことを検出する必要があります。