gpt4 book ai didi

java - 如何使用 Mockito 正确测试 Spring Boot

转载 作者:行者123 更新时间:2023-12-02 12:21:13 26 4
gpt4 key购买 nike

我从未做过测试,因此决定进行第一次测试。我使用的是 Spring Boot,默认布局如下:https://zapodaj.net/c8b65f1644e95.png.html启动时创建的文件如下所示

@RunWith(SpringRunner.class)
@SpringBootTest
public class RestWebServicesApplicationTests {

@Test
public void contextLoads() {
}

}

我在这里不做任何改变,因为我不需要它。相比之下,我创建了一个新类

public class CheckUserDataRestControllerTest {

@Mock
private UserService userService;

@InjectMocks
private CheckUserDataRestController checkUserDataRestController;

private MockMvc mockMvc;

@Before
public void setup() {
MockitoAnnotations.initMocks(this);

mockMvc = MockMvcBuilders.standaloneSetup(checkUserDataRestController).build();
}

@Test
public void textExistsUsername() throws Exception {
mockMvc
.perform(get("/checkUsernameAtRegistering")
.param("username", "jonki97"))
.andExpect(status().isOk());
}
}

测试 Controller 方法,该方法应返回状态“OK”。

@GetMapping("/checkUsernameAtRegistering")
public HttpEntity<Boolean> checkUsernameAtRegistering(@RequestParam String username) {
return ResponseEntity.ok().body(!userService.existsByUsername(username));
}

然而,在测试期间,他把我赶了出去

java.lang.AssertionError: Status 
Expected :200
Actual :404
<Click to see difference>

at org.springframework.test.util.AssertionErrors.fail(AssertionErrors.java:54)
...

这是经过测试的 Controller :https://pastebin.com/MWW9YwiH

我没有做任何特殊的配置,因为我没有发现我需要做一些事情。

最佳答案

错误 404 表示模拟无法识别您要测试的端点。终点应该是:

 @Test
public void textExistsUsername() throws Exception {
mockMvc
.perform(get("/checkUserData/checkUsernameAtRegistering")
.param("username", "jonki97"))
.andExpect(status().isOk());
}

希望这有帮助。

关于java - 如何使用 Mockito 正确测试 Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45760467/

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