【发布时间】:2020-03-20 14:37:17
【问题描述】:
此函数用于更新数据库中的用户详细信息。谁能帮我写这个函数的测试用例。
@RequestMapping(value = "/updateDetails", method = RequestMethod.POST)
public String updateVendorDetails(@Valid @ModelAttribute("users") Users users, BindingResult result,Model model) {
logger.info("{}.{}",new VendorController().getClass().getPackageName(), new VendorController().getClass().getName());
if(result.hasErrors()) {
model.addAttribute("edit","edit");
logger.warn("Function: updateVendorDetails(), Information: Error while updating vendor details");
return register.toString();
}
userDao.updateVendorDetails(users);
logger.info("Function: updateVendorDetails(), Information: Vendor details updated successfully");
return vendor.toString();
}
更新
代码:
mockMvc.perform(post("/updateDetails").accept(MediaType.TEXT_HTML).params(params)).andExpect(status().isOk());
产生的错误:
这表示 post 方法被禁止,我的测试失败
这是我的测试课
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestVendorPage {
@Autowired
private WebApplicationContext context;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build();
}
@WithMockUser(roles = "VENDOR")
@Test
public void testIfUpdateEdtailsIsAvailableOnlyForVendor() throws Exception {
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("firstName", "vinod");
params.add("lastName", "babu");
params.add("contactNumber", "9952016709");
mockMvc.perform(post("/updateDetails").accept(MediaType.TEXT_HTML).params(params)).andExpect(status().isOk());
}
}
【问题讨论】:
-
请添加一些代码,说明您迄今为止在编写 mockito 测试时所尝试的内容。你遇到了什么问题?
-
我们不能只告诉你如何“测试这个方法”。你需要学习如何测试。建议:请考虑完成任何/所有这些教程:baeldung.com/spring-boot-testing、spring.io/guides/gs/testing-web、mkyong.com/spring-boot/spring-rest-integration-test-example
-
mockMvc.perform(post("/updateDetails").accept(MediaType.TEXT_HTML).params(params)).andExpect(status().isOk());
-
这表示 post 方法被禁止,我的测试失败
-
@AMITHSAI,你能用邮递员成功命中吗?
标签: java spring-boot mockito