我一直在使用 JerseyTest 框架来测试我的应用程序中的端点。我对此很陌生。
我研究了我公司其他开发人员编写的其他一些测试用例。他们不直接测试 Resource 类,而是在测试用例中编写一个静态类并测试静态类。
即使在 Jersey Guide 中,我也注意到仅测试静态类的示例。
我不明白编写这样的测试用例的目的,因为我的目标是测试我的资源类,那么如果我们编写一个静态类并对其进行测试,我们将实现什么?
要测试的类如下
class SomeController {
@Post
@path("/someResponse")
private SomeResponseObject doSomeWork(@NotNull SomeObjectParameter parameter) {
//Code for processing request and prepares the response object
return someResponseObject;
}
}
但是在单元测试类中测试的类
public class SomeControllerTest extends JerseyTest {
@Path("/path")
public static class ControllerResource {
@Post
public SomeResponseObject getSomeWork() {
//Prepared SomeResponseObject
return someResponseObject;
}
}
@Override
protected Application configure() {
return new ResourceConfig(ControllerResource.class);
}
@Test
public void test() {
SomeResponseObject response = target("hello").request().post(SomeResponseObject.class);
//Do assertions
}
}
现在,如果您注意到 Configure 方法,则添加的类是在测试类中创建的静态类,而不是要测试的类 SomeController.class
如果我们不测试 SomeController 类,那么在这里编写单元测试有什么意义?我们想要达到什么目的?