【发布时间】:2020-09-24 09:49:01
【问题描述】:
基本上我在这里为我的服务器进行了这个 JUnit 测试:
@Test
public void test() throws UnknownHostException, IOException, ClassNotFoundException
{
Socket socket = new Socket("localhost", 4444);
PrintWriter stringOut = new PrintWriter(socket.getOutputStream(), true);
ObjectInputStream oIn = new ObjectInputStream(socket.getInputStream());
stringOut.println("getMyString");
String myString = (String) oIn.readObject();
assertEquals("myString", myString);
socket.close();
}
但是每次我想运行这个测试时,我都需要启动服务器。我应该如何让它自动启动(当然它必须在另一个线程中)
【问题讨论】:
-
服务器似乎是测试设置的一部分...你没有设置方法吗?
-
@deHaar 服务器有一个main方法
-
能否从测试代码启动,还是必须启动外部.exe或.jar才能让服务器运行?
-
我要么从 jar 启动服务器,要么只使用 Eclipse 运行
-
然后编写一个运行 jar 的
@BeforeAll方法... 使用ProcessBuilder可能... 如果需要,编写另一个方法在测试后停止服务器。
标签: java multithreading unit-testing junit server