Java如何在不部署的情况下测试API网关端点

qij5mzcb  于 2023-05-27  发布在  Java
关注(0)|答案(2)|浏览(136)

我想学习如何在部署API之前对API网关端点进行单元测试,或者只是一般性地进行测试。例如,我如何测试像这样的东西:

public class someController {

     private SomeService someService;

     @GET
     @Path("...")
     public String someMethod(){
        return someService.someMethod();
     }

}

一些服务:

public class SomeService{
   public String someMethod(){
   //make http request to api gateway
   return json string
   }

}

如何测试“someService”类。我假设“someController”类将确保通过使用Mockito verify(someService).someMethod();调用“someMethod

ep6jt1vc

ep6jt1vc1#

创建SomeService的mock,将其注入到SomeController中(通过构造函数或setter)。
使用when/thenReturns设置模拟行为。例如:

when(someServiceMock.someMethod()).thenReturn("foo bar")

调用SomeController.someMethod()并检查结果。
如果您是Spring,那么您可以通过使用WebMvcTest@Autowired MockMvc来进一步扩展

@WebMvcTest(controllers = SomeController.class)

来调用实际路径和http方法,头等

mockMvc.perform(get("...").andExpect(status().isOk());
lh80um4z

lh80um4z2#

假设我正确地阅读了你的问题,你想做一个测试调用你的一个服务方法并查看响应,如果你使用IntelliJ,你可以在你的应用程序中使用这个插件[1]来调用你的服务类上的方法并查看结果。
[1][https://plugins.jetbrains.com/plugin/18529-unlogged](https://plugins.jetbrains.com/plugin/18529-unlogged)
免责声明:我是该插件的贡献者。

相关问题