【问题标题】:junit test case for optional parameters可选参数的junit测试用例
【发布时间】:2021-12-29 23:14:27
【问题描述】:
    @GetMapping("/getAllProjectsDetails")
public List<Project> getAllProjectsDetails(@RequestParam Optional<String> projectId,
        @RequestParam Optional<String> createdBy,
        @RequestParam Optional<String> projectDescription,
        @RequestParam Optional<String> projectName,
        @RequestParam Optional<String> technologiesToBeUsed,
        @RequestParam Optional<String> updatedBy,
        @RequestParam("createdDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Optional<Date> createdDate,
        @RequestParam("updatedDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Optional<Date> updatedDate,
        @RequestParam Optional<String> clientId) {
    return projectService.getAllProjectsDetails(projectId,createdBy,projectDescription,projectName,technologiesToBeUsed,updatedBy,createdDate,updatedDate,clientId);
}

我已经使用可选参数编​​写了这个 get 调用,现在我需要为此 get 调用编写 junit 测试用例,谁能帮我解决这个问题?

【问题讨论】:

    标签: junit get optional-parameters


    【解决方案1】:

    就单元测试而言,您应该:

    • 模拟 projectService.getAllProjectDetails(),因为您只想测试控制器方法
    • 设置预期的响应,这将是一个硬编码列表
    • 在运行您正在测试的方法时,断言预期的 List 与实际 List 匹配

    更多关于模拟的信息可以在这里找到:https://www.vogella.com/tutorials/Mockito/article.html

    【讨论】:

    • 谢谢,我以同样的方式尝试了回复,但我遇到了错误,你能帮我详细解释一下吗?
    • @Test public void getAllProjectsDetailsTest() { Project project = new Project(); project.setProjectId("1");列表 客户端 = 新 ArrayList();项目.setClient(客户端); project.setTechnologiesToBeUsed("java"); project.setProjectName("hr-dome"); project.setProjectDescription("项目基于lms,是公司自产"); project.setCreatedBy("Priyanka"); project.setUpdatedBy("Sowmya");日期日期 = 新日期();日期.UTC(2021,11,02,05,30,00); project.setCreatedDate(日期); project.setUpdatedDate(date);
    • Mockito.when(projectController.getAllProjectsDetails("1", "Priyanka", "项目基于 lms,它是公司的自产产品", "hr-dome", "java", " Sowmya","2021-11-02 05:30:00", "2021-11-02 05:30:00", "1").thenReturn(project); Assert.assertEquals(project, projectServiceImpl.getAllProjectsDetails(" 1", "Priyanka", "项目基于 lms,是公司自产产品", "hr-dome", "java", "Sowmya","2021-11-02 05:30:00", " 2021-11-02 05:30:00", "1"));
    • 我尝试过这种方式,但我遇到了错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    相关资源
    最近更新 更多