サーバー、クライアント、テストの 3 つのクラスがあります。クライアントを待機し、そのコマンドを処理するサーバーを実行する必要があります。Test 内で 2 つのクラスを実行しようとすると、サーバーの while になります (ソケットでのクライアント接続の待機サイクル)。
class Test{
new Server();
new Client();
}
この種のアプリケーションを実行およびデバッグする方法は?
Eclipse では 2 つのプロセスを同時に実行できます。「デバッグ」でサーバーを実行し、「デバッグ」でテストを実行すると、プロセスはそれぞれ指定されたブレークポイントで停止します。私が理解している限り、テストはクライアント コマンドを呼び出しますよね?
両方を同じプロセスで実行する必要はありません。
Threads
次のように 2 つ作成できます。
Thread serverThread = new Thread(new Runnable() {
@Override
public void run() {
new Server();
}
});
Thread clientThread = new Thread(new Runnable() {
@Override
public void run() {
new Client();
}
});
serverThread.start();
clientThread.start();
サーバーループ用に別のスレッドを開始する必要があります。これは通常、テストのセットアップ段階で行われます。
JUnit 4を使用していると仮定します。
class Test {
@BeforeClass
public static void setup() {
new Thread() {
public void run() {
new Server();
}
}.start();
}
@AfterClass
public static void teardown() {
// stop the server (somehow)
}
@Test
public void test() {
new Client();
}
}