我从来没有做了一个测试,并决定我会做我的第一次。 我使用Spring启动,并且默认布局如下: 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
我没有做任何特别的配置,因为我没有发现,我需要做一些事情。