如何获取单元测试的org.springframework.validation.Errors实例

时间:2015-08-20 15:00:12

标签: java spring unit-testing

我正在为具有以下签名的控制器方法编写单元测试

String handlerApplicationRequest(@ModelAttribute("resource") Resource resource, Errors errors, HttpServletRequest request)

在单元测试中调用此方法,我需要传递所有三个参数, 我已经有一个Resource实例,用于测试,我为请求创建了MockHttpServletRequest实例。但我不知道如何获得org.springframework.validation.Errors的实例。 Spring文档,我没有看到任何公共构造函数或任何静态工厂方法来实例化这个类。 我正在编写单元测试的代码不是我的代码,但它的文档说,错误,在处理请求时保留任何错误。我的问题是如何获得错误实例来编写我的单元测试。

1 个答案:

答案 0 :(得分:0)

没有任何公共构造函数,因为org.springframework.validation.Errors是一个接口。参见"所有已知的实施类" javadoc的一部分,用于查找可以构建并传入测试的实现。

最适合单元测试的选项是使用模拟框架(例如EasyMockMockito)创建接口的模拟实现。然后,您可以定义针对模拟的期望,以测试您的测试类是否正常运行。在同一个地测试多个类通常是一个坏主意,如果你使用Errors的实际实现,你的单元测试将耦合到该接口的实现。