java Rest学习-第一个Java REST 服务(5)-测试运行

文章标签: java-rest
2014-12-17 9:38:18     11 人阅读    

测试和运行服务
到此,完成了simple-service 扩展的代码开发部分,接下来为代码编写单元测试类,以检验扩展的REST 接口是否正常工作。DeviceResourceTest类模仿测试类MyResourceTest ,分别测试了上述的GET 和PUT 请求处理方法,示例代码如下。

pub lic class DeviceResourceTest {
    private HttpServer server;
    private WebTarget target;
    @Before
    public void setUp() throws Exception {
        server = Main.startServer();
        final Client c = ClientBuilder.newClient();
        target = c.target(Main.BASE_URI);
    }
    @After
    public void tearDown() throws Exception {
        server.shutdownNow();
    }
    // 关注点1 :测试GET 方法
    @Test
    public void testGetDevice() {
        final String testIp = "10.11.58.184";
        //关注点2 :带参数的GET 请求
        final Device device = target.path("device")
       .queryParam("ip", testIp).request().get(Device.class);
        //关注点3 :设备IP的断言
        Assert.assertEquals(testIp ,device.getIp());
    }
        //关注点4 :测试PUT 方法
    @Test
    public void testGetDevice() {
        final String testIp = "10.11.58.184";
        //关注点2 :带参数的GET 请求
        final Device device = target.path("device")
       .queryParam("ip", testIp).request().get(Device.class);
        //关注点3 :设备IP的断言
        Assert.assertEquals(testIp ,device.getIp());
    }
        //关注点4 :测试PUT 方法
    @Test
    public void testUpdateDevice() {
        final String testIp = "10.11.58.163";
        final Device device = new Device(testIp);
        device.setStatus(1);
        Entity<Device> entity = Entity.entity(device, MediaType.APPLICATION_XML_TYPE);
        final Device result = target.path("device").request().put(entity, Device.class);
        //关注点5 :设备状态的断言
        Assert.assertEquals(1, result.getStatus());
    }
}
GET 测试方法testGetDevice() 测试资源路径为device 的get请求,见关注点1 。在关注点2 ,target 传递了一个字符串参数ip ,其值为“10.11.58.184”。断言验证返回的设备IP 是否与预期相同,见关注点3 。PUT 测试方法testUpdateDevice() 创建了一个Device 实例,并以put 方法将其提交到device 资源路径,见关注点4 。断言验证返回设备状态是否与预期一致,见关注点5 。
完成测试类后,打开控制台,在项目的存储目录再次运行“mvn clean test”命令,如果测试通过,即断言验证成功,说明扩展实现已经成功结束。最后,我们运行Main类,通过浏览器来体验一下第一个REST 服务。在浏览器地址栏中输入http://localhost:8080/myapp/device?ip=10.11.58.184,预期得到的输出为:<device ip=" 10.11.58.184"  status=" 0 " /> 。同时,这个测试也验证了前文中推测的资源地址URL规则:HTTP 服务器路径/REST服务名称/myresource/
到此,我们已经快速掌握了一个非常简单的Jersey 2 的Java SE 应用。接下来,我们介绍更加常用的基于Servlet 容器的REST Web 服务。


原文地址:http://www.itmmd.com/201412/327.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

JavaScript 自动切换焦点、表单序列、富文本编辑(所见即所得)   上一篇
下一篇  Java程序常用算法 - 将数字格式化为货币字符串

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!