![](/img/trans.png)
[英]How to write unit test with okhttp using Mockito & Spring Boot
[英]How to properly test a Spring Boot using Mockito
我从未做过测试,因此决定要做我的第一件事。 我使用的是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());
}
}
要测试控制器方法,应返回状态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)
...
这是经过测试的控制器: https : //pastebin.com/MWW9YwiH
我没有做任何特殊的配置,因为我没有发现我需要做一些事情。
错误404表示模拟无法识别您要测试的端点。 终点应该是:
@Test
public void textExistsUsername() throws Exception {
mockMvc
.perform(get("/checkUserData/checkUsernameAtRegistering")
.param("username", "jonki97"))
.andExpect(status().isOk());
}
希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.