使用注释时模拟Spring MVC BindingResult

我正在迁移Spring MVC控制器以使用较新的样式注释,并希望对验证命令对象的控制器方法进行单元测试(请参见下面的简单示例)。

 @RequestMapping(method = RequestMethod.POST)

public String doThing(Command command, BindingResult result,

HttpServletRequest request, HttpServletResponse response,

Map<String, Object> model){

ThingValidator validator = new ThingValidator();

validator.validate(command, result);

... other logic here

}

我的问题是我必须在单元测试中调用控制器的方法,并提供模拟值以满足其签名以正确执行代码,而我无法解决如何模拟BindingResult的问题。

在旧样式的Controller中,签名只是采用了HttpServletRequest和HttpServletResponse,它们很容易被模拟,但是由于新注释样式的灵活性,必须通过签名传递更多信息。

如何模拟Spring BindingResult用于单元测试?

回答:

BindingResult是一个接口,所以您不能简单地传入该接口的Springs实现之一吗?

我在Spring

MVC代码中不使用注释,但是当我想测试验证器的validate方法时,我只是传入BindException的实例,然后使用在assertEquals等中返回的值。

以上是 使用注释时模拟Spring MVC BindingResult 的全部内容, 来源链接: utcz.com/qa/407674.html

回到顶部