Spring Boot单元测试:测试model == null

时间:2018-08-01 13:42:54

标签: spring unit-testing controller

在我们的代码中,对控制器的请求映射定义如下:

@Controller
public class UserController {   

    private UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }

    @RequestMapping("/some/page")
    public String showUsers(Model model) {
        if(model == null) {
            throw new IllegalArgumentException("Parameter value is null where prohibited.");
        }

        // Some other checking and additions to the model

        return "some/redirect";
    }
}

关于单元测试,我们已经有可以检查所有“其他”检查(例如用户登录等)的测试。但是我们不对model等于null的情况进行单元测试。

我的问题: 模型可以为空吗?如果是这样,我们如何在单元测试中对此进行测试?

可能性1 (但返回NullPointerException)

@Test
public void showUsers_GiveNullValueAsModel_ReturnsIllegalArgumentException() throws Exception {
    String returnValue = userController.showUsers(null);
    assertThat(returnValue, is("Parameter value is null where prohibbited."));
}

可能性2 (但似乎不起作用)

@Test(expected = IllegalArgumentException.class)
public void showUsers_GiveNullValueAsModel_ReturnsIllegalArgumentException() {
    this.mockMvc.perform(
            get("/admin/users", null)
    );
}

0 个答案:

没有答案