我正在为具有以下签名的控制器方法编写单元测试
String handlerApplicationRequest(@ModelAttribute("resource") Resource resource, Errors errors, HttpServletRequest request)
在单元测试中调用此方法,我需要传递所有三个参数, 我已经有一个Resource实例,用于测试,我为请求创建了MockHttpServletRequest实例。但我不知道如何获得org.springframework.validation.Errors的实例。 Spring文档,我没有看到任何公共构造函数或任何静态工厂方法来实例化这个类。 我正在编写单元测试的代码不是我的代码,但它的文档说,错误,在处理请求时保留任何错误。我的问题是如何获得错误实例来编写我的单元测试。
答案 0 :(得分:0)
没有任何公共构造函数,因为org.springframework.validation.Errors是一个接口。参见"所有已知的实施类" javadoc的一部分,用于查找可以构建并传入测试的实现。
最适合单元测试的选项是使用模拟框架(例如EasyMock或Mockito)创建接口的模拟实现。然后,您可以定义针对模拟的期望,以测试您的测试类是否正常运行。在同一个地测试多个类通常是一个坏主意,如果你使用Errors
的实际实现,你的单元测试将耦合到该接口的实现。