如何解决在junit测试用例中为requestBuilder传递动态值所需的输入
尝试编写REST控制器的JUnit测试用例。 下面是示例。
public class EmployeeController{
@Autowired
EmployeeService empService;
@GetMapping(path="/emp/{empId})
public GetEmpDetails(@PathVariable("empId") int eid,HttpServletRequest req){
return empService.getEmployeeDetails(empId);
}
}
EmployeeServiceImpl.java
public class EmployeeServiceImpl extends EmployeeService{
public GetEmpDetails getEmployeeDetails(int empId){
//logic to create request builder
GetEmpBuilderFactory fact =new GetEmpBuilderFactory();
GetEmpRequest req = fact.createInstance(sVer,sv,cid,sysenv).withId(empId).withStartDate().build();
GetEmpResponse resp = ...
return resp;
}
}
下面是上述REST控制器的示例JUnit5测试用例。
@ExtendWith(SpringExtension.class)
@WebMvcTest(controllers=EmployeeController.class)
class EmpControllerTest{
@AutoWired
private MockMvc mockMvc;
@MockBean
private EmployeeService empService;
@Test
void getEmpDetails(){
/*studentService.retrieveCourse(Mockito.anyString(),Mockito.anyString())).thenReturn(mockCourse);
RequestBuilder requestBuilder = MockMvcRequestBuilders.get(
"/students/Student1/courses/Course1").accept(
MediaType.APPLICATION_JSON);
MvcResult result = mockMvc.perform(requestBuilder).andReturn();
System.out.println(result.getResponse());
String expected = "{id:Course1,name:Spring,description:10Steps}";
JSONAssert.assertEquals(expected,result.getResponse()
.getContentAsString(),false);*/
}
}
我对如何传递EmployeeController的请求生成器感到困惑。任何对此的投入将是有帮助的。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。