栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何运行Jetty服务器进行Java Junit测试

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何运行Jetty服务器进行Java Junit测试

跳过

Runnable
,跳过
new Thread(runnable).start()

该调用

jettyServer.start()
将在服务器自己的线程(以及服务器所需的所有其他线程)上启动服务器。

有关junit和码头的基本示例…

@Testpublic void testGet() throws Exception{    // Create Server    Server server = new Server(8080);    ServletContextHandler context = new ServletContextHandler();    ServletHolder defaultServ = new ServletHolder("default", DefaultServlet.class);    defaultServ.setInitParameter("resourcebase",System.getProperty("user.dir"));    defaultServ.setInitParameter("dirAllowed","true");    context.addServlet(defaultServ,"/");    server.setHandler(context);    // Start Server    server.start();    // Test GET    HttpURLConnection http = (HttpURLConnection)new URL("http://localhost:8080/").openConnection();    http.connect();    assertThat("Response Code", http.getResponseCode(), is(HttpStatus.OK_200));    // Stop Server    server.stop();}

@Before
@After
JUnit标注也可以使用。这将在每个服务器之前启动服务器,然后
@Test
在之后停止服务器。

package jetty;import static org.hamcrest.Matchers.*;import static org.junit.Assert.*;import java.net.HttpURLConnection;import java.net.URL;import org.eclipse.jetty.http.HttpStatus;import org.eclipse.jetty.server.Server;import org.eclipse.jetty.servlet.DefaultServlet;import org.eclipse.jetty.servlet.ServletContextHandler;import org.eclipse.jetty.servlet.ServletHolder;import org.junit.After;import org.junit.Before;import org.junit.Test;public class JUnitBeforeAfterJettyTest{    private Server server;    @Before    public void startJetty() throws Exception    {        // Create Server        server = new Server(8080);        ServletContextHandler context = new ServletContextHandler();        ServletHolder defaultServ = new ServletHolder("default", DefaultServlet.class);        defaultServ.setInitParameter("resourcebase",System.getProperty("user.dir"));        defaultServ.setInitParameter("dirAllowed","true");        context.addServlet(defaultServ,"/");        server.setHandler(context);        // Start Server        server.start();    }    @After    public void stopJetty()    {        try        { server.stop();        }        catch (Exception e)        { e.printStackTrace();        }    }    @Test    public void testGet() throws Exception    {        // Test GET        HttpURLConnection http = (HttpURLConnection)new URL("http://localhost:8080/").openConnection();        http.connect();        assertThat("Response Code", http.getResponseCode(), is(HttpStatus.OK_200));    }}

对于最佳方法,您还可以使用

@BeforeClass
@AfterClass
技术,以及自动绑定到开放端口的方法。按照“测试类”,这只会启动服务器一次,运行所有
@Test
方法,然后最后停止服务器一次。

package jetty;import static org.hamcrest.Matchers.*;import static org.junit.Assert.*;import java.net.HttpURLConnection;import java.net.URI;import java.net.URL;import org.eclipse.jetty.http.HttpStatus;import org.eclipse.jetty.server.Server;import org.eclipse.jetty.server.ServerConnector;import org.eclipse.jetty.servlet.DefaultServlet;import org.eclipse.jetty.servlet.ServletContextHandler;import org.eclipse.jetty.servlet.ServletHolder;import org.junit.AfterClass;import org.junit.BeforeClass;import org.junit.Test;public class JUnitBeforeAfterClassJettyTest{    private static Server server;    private static URI serverUri;    @BeforeClass    public static void startJetty() throws Exception    {        // Create Server        server = new Server();        ServerConnector connector = new ServerConnector(server);        connector.setPort(0); // auto-bind to available port        server.addConnector(connector);        ServletContextHandler context = new ServletContextHandler();        ServletHolder defaultServ = new ServletHolder("default", DefaultServlet.class);        defaultServ.setInitParameter("resourcebase",System.getProperty("user.dir"));        defaultServ.setInitParameter("dirAllowed","true");        context.addServlet(defaultServ,"/");        server.setHandler(context);        // Start Server        server.start();        // Determine base URI for Server        String host = connector.getHost();        if (host == null)        { host = "localhost";        }        int port = connector.getLocalPort();        serverUri = new URI(String.format("http://%s:%d/",host,port));    }    @AfterClass    public static void stopJetty()    {        try        { server.stop();        }        catch (Exception e)        { e.printStackTrace();        }    }    @Test    public void testGet() throws Exception    {        // Test GET        HttpURLConnection http = (HttpURLConnection) serverUri.resolve("/").toURL().openConnection();        http.connect();        assertThat("Response Code", http.getResponseCode(), is(HttpStatus.OK_200));    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号