美文网首页
Jersey 搭建单元测试环境

Jersey 搭建单元测试环境

作者: cystone | 来源:发表于2019-11-25 15:06 被阅读0次

    IDEA 创建 Jersey 项目及增加单元测试的流程。

    1. 创建 Jersey 项目

    在 IDEA 中按以下步骤操作:New Project --> Maven --> Create from archetype --> org.glassfish.jersey.archetypes:jersey-quickstart-webapp --> jeresy-quickstart-webapp:2.29.1。 如图:

    1.png

    然后 Next ,填写 GroupId 和 ArtifactId ,选择项目路径等等,直到完成。

    2. 配置 Run

    在 IDEA 中按以下步骤操作:Run --> Edit Configurations --> "+" --> Tomcat Server --> Local --> Server --> Application server --> Configure...。如图:

    1.png

    注意HTTP port 需要设置为一个为被占用的端口,例如:如果 8080 端口已经被其他应用占用,这里就可以换成 8081。如图:

    3.png

    然后配置编译文件的存放位置。 Deploymeng --> "+" --> Artifact... --> test:war exploded --> Edit Artifact --> Output directory 填写存放目录。

    1.png

    3. 运行项目

    Run --> Run 'Tomcat' 打开浏览器即可看到效果。

    1.png

    4. 添加单元测试

    支持 JUnit 和 TestNG 两种测试框架

    使用 JUnit 测试框架:

    pom.xml 中添加 container 依赖:

            <dependency>
                <groupId>org.glassfish.jersey.test-framework.providers</groupId>
                <artifactId>jersey-test-framework-provider-grizzly2</artifactId>
                <version>${jersey.version}</version>
            </dependency>
    

    添加测试方法:

    package jerseytest;
    
    import org.glassfish.jersey.server.ResourceConfig;
    import org.glassfish.jersey.test.JerseyTest;
    import org.junit.Test;
    
    import javax.ws.rs.core.Application;
    
    import static org.junit.Assert.assertEquals;
    
    public class MyResourceTest extends JerseyTest {
    
        @Override
        protected Application configure() {
            return new ResourceConfig(MyResource.class);
        }
    
        @Test
        public void testGetIt() {
            final String hello = target("myresource").request().get(String.class);
            assertEquals("Got it!", hello);
        }
    }
    

    使用 TestNG 测试框架:

    pom.xml 中添加 container 和 TestNG 依赖:

            <dependency>
                <groupId>org.glassfish.jersey.test-framework.providers</groupId>
                <artifactId>jersey-test-framework-provider-grizzly2</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.14.3</version>
            </dependency>
    

    添加测试方法:

    package com.supermap.atlab;
    
    import org.glassfish.jersey.server.ResourceConfig;
    import org.glassfish.jersey.test.JerseyTestNg;
    import org.testng.annotations.Test;
    
    import javax.ws.rs.core.Application;
    
    import static org.testng.AssertJUnit.assertEquals;
    
    public class MyResourceTest extends JerseyTestNg.ContainerPerClassTest {
    
        @Override
        protected Application configure() {
            return new ResourceConfig(MyResource.class);
        }
    
        @Test
        public void testGetIt() {
            final String hello = target("myresource").request().get(String.class);
            assertEquals("Got it!", hello);
        }
    }
    

    更多信息请参阅文档 Jersey Test Framework

    相关文章

      网友评论

          本文标题:Jersey 搭建单元测试环境

          本文链接:https://www.haomeiwen.com/subject/atzdwctx.html