Spring MVC:如何通过返回String的控制器方法对模型的属性进行单元测试?


问题内容

例如,

package com.spring.app;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * Handles requests for the application home page.
 */
@Controller
public class HomeController {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(final Model model) {
        model.addAttribute("msg", "SUCCESS");
        return "hello";
    }

}

我想model通过home()使用JUnit
来测试的属性及其值。我可以更改返回类型以ModelAndView使其成为可能,但我想使用String它,因为它更简单。虽然不是必须的。

无论如何,有model没有更改home()返回类型的检查?还是无济于事?


问题答案:

您可以使用Spring MVC Test

mockMvc.perform(get("/"))
                .andExpect(status().isOk())
                .andExpect(model().attribute("msg", equalTo("SUCCESS"))) //or your condition

在这里充分说明例子