首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何测试Jersey REST web服务?

如何测试Jersey REST web服务?
EN

Stack Overflow用户
提问于 2015-03-31 09:09:15
回答 2查看 39.1K关注 0票数 18

我已经编写了一个Restful Web服务,并且必须使用JUnit4对其进行测试。我已经使用Jersey Client编写了一个客户端。但是我想知道我是否只能用junit4测试我的服务。至少有人能帮我拿样品吧。

我的rest服务有一个身份验证方法,它接受用户名、密码并返回一个令牌。

我已经为authenticate方法编写了测试用例。但我不确定如何使用url进行测试。

代码语言:javascript
复制
public class TestAuthenticate {
    Service service  = new Service();
    String username = "user";
    String password = "password";
    String token;

    @Test(expected = Exception.class)
    public final void testAuthenticateInputs() {
        password = "pass";
        service.authenticate(username, password);
    }

    @Test(expected = Exception.class)
    public final void testAuthenticateException(){
        username = null;
        String token = service.authenticate(username, password);
        assertNotNull(token);
    }

    @Test
    public final void testAuthenticateResult() {
        String token = service.authenticate(username, password);
        assertNotNull(token);
    }
}
EN

回答 2

Stack Overflow用户

发布于 2015-05-27 19:51:08

看看Alchemy rest client generator吧。这可以在后台使用jersey客户端为您的JAX-RS webservice类生成代理实现。实际上,您将在单元测试中将webservice方法称为简单的java方法。还可以处理http身份验证。

如果您需要简单地运行测试,则不涉及代码生成,因此非常方便。

demo here设置grizzly并使用上面的生成器来运行junit测试。

免责声明:我是这个库的作者。

票数 0
EN

Stack Overflow用户

发布于 2016-09-04 04:48:26

我认为@peeskillet已经为您提供了所需的先决条件,即您需要在嵌入式web服务器中运行您的web服务。您还可以查看dropwizard或spring-boot支持,以方便地完成此操作。

至于实际验证响应,我会保持简单,使用JUnit和http-matcher(参见https://github.com/valid4j/http-matchers)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29358940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档