我想测试应该向“服务器”发送post请求的post方法(因此我想模拟来自服务器的响应并检查响应)。另外,我想测试响应是否在正文中包含http状态OK。问题:我应该如何使用 mockito?
客户端中的“我的帖子”方法(客户端):
public class Client{
public static void sendUser(){
String url = "http://localhost:8080/user/add";
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
requestHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
User test = new User();
test.setName("test");
test.setEmail("a@hotmail.com");
test.setScore(205);
RestTemplate restTemplate = new RestTemplate();
HttpEntity<User> request = new HttpEntity<>(test);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
if(response.getStatusCode() == HttpStatus.OK){
System.out.println("user response: OK");
}
}
}
另一个模块(服务器端)中的我的控制器:
@RestController
@RequestMapping("/user")
public class UserController
{
@Autowired
private UserRepository userRepository;
@PostMapping("/add")
public ResponseEntity addUserToDb(@RequestBody User user) throws Exception
{
userRepository.save(user);
return ResponseEntity.ok(HttpStatus.OK);
}
测试:
@RunWith(SpringRunner.class)
@ActiveProfiles("test")
@SpringBootTest(classes = Client.class)
@AutoConfigureMockMvc
public class ClientTest
{
private MockRestServiceServer mockServer;
@Autowired
private RestTemplate restTemplate;
@Autowired
private MockMvc mockMvc;
@Before
public void configureRestMVC()
{
mockServer =
MockRestServiceServer.createServer(restTemplate);
}
@Test
public void testRquestUserAddObject() throws Exception
{
User user = new User("test", "mail", 2255);
Gson gson = new Gson();
String json = gson.toJson(user );
mockServer.expect(once(), requestTo("http://localhost:8080/user/add")).andRespond(withSuccess());
}
摇曳的蔷薇
慕尼黑5688855
largeQ
随时随地看视频慕课网APP
相关分类