我已经编写了一个Restful Web服务,并且必须使用JUnit4对其进行测试。我已经使用Jersey Client编写了一个客户端。但是我想知道我是否只能用junit4测试我的服务。至少有人能帮我拿样品吧。
我的rest服务有一个身份验证方法,它接受用户名、密码并返回一个令牌。
我已经为authenticate方法编写了测试用例。但我不确定如何使用url进行测试。
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);
}
}
发布于 2015-05-27 19:51:08
看看Alchemy rest client generator吧。这可以在后台使用jersey客户端为您的JAX-RS webservice类生成代理实现。实际上,您将在单元测试中将webservice方法称为简单的java方法。还可以处理http身份验证。
如果您需要简单地运行测试,则不涉及代码生成,因此非常方便。
demo here设置grizzly并使用上面的生成器来运行junit测试。
免责声明:我是这个库的作者。
发布于 2016-09-04 04:48:26
我认为@peeskillet已经为您提供了所需的先决条件,即您需要在嵌入式web服务器中运行您的web服务。您还可以查看dropwizard或spring-boot支持,以方便地完成此操作。
至于实际验证响应,我会保持简单,使用JUnit和http-matcher(参见https://github.com/valid4j/http-matchers)。
https://stackoverflow.com/questions/29358940
复制相似问题