gpt4 book ai didi

java - java中的简单 Controller Rest端点测试

转载 作者:行者123 更新时间:2023-12-02 10:10:04 25 4
gpt4 key购买 nike

我收到了一项在 java Controller 中创建基本端点的任务。我想出了下面的内容。

@RestController
public class SimpleController{

@RequestMapping("/info")
public String displayInfo() {
return "This is a Java Controller";
}

@RequestMapping("/")
public String home(){
return "Welcome!";
}

}

令人烦恼的是,它是如此简单,但我想不出如何创建 ControllerTest,我所需要的只是测试代码。这一切都是有效的并且经过手动测试。有什么帮助吗?谢谢

最佳答案

要通过 http 进行完整的系统集成测试,您可以使用 TestRestTemplate:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class HttpRequestTest {

@LocalServerPort
private int port;

@Autowired
private TestRestTemplate restTemplate;

@Test
public void greetingShouldReturnDefaultMessage() throws Exception {
assertThat(this.restTemplate.getForObject("http://localhost:" + port + "/",
String.class)).contains("Welcome!");
}
}

对于无需实际启动 Web 服务器的轻量级测试,您可以使用 Spring MockMVC:https://spring.io/guides/gs/testing-web/

@RunWith(SpringRunner.class)
@WebMvcTest
public class WebLayerTest {

@Autowired
private MockMvc mockMvc;

@Test
public void shouldReturnDefaultMessage() throws Exception {
this.mockMvc.perform(get("/"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string(containsString("Hello World")));
}
}

关于java - java中的简单 Controller Rest端点测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55067369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com