当前位置: 首页 > 面试题库 >

在Spring MVC中具有基于注释的验证的表单bean单元测试的良好模式

戴化
2023-03-14
问题内容

在对表单bean使用基于注释的验证时,对这些bean进行单元测试的最佳实践是什么,以确保为每个字段指定正确的验证注释?

例如,如果您有:

public class MyForm {
    @NotNull
    private String name;
}

验证@NotNull应用于该方法的最佳方法是什么?

一种明显的方法是创建一个验证器,向其抛出一个null并期望它失败。但是我认为这不是最好的方法,因为您将测试@NotNull使用它的行为和实现,而不是信任框架

理想情况下,我想使用反射或实用程序,它使我可以断言将@NotNull(和任何其他)验证应用于给定字段,而不必发送未通过验证的值的各种组合。

有没有做到这一点的优雅方法,或者我总体上处于正确的轨道上?


问题答案:

您也可以使用验证器工厂为Bean编写单元测试,并在JSR303中用注解进行注释。参见示例:http :
//musingsofaprogrammingaddict.blogspot.com/2009/02/using-bean-validation-
with-
spring.html




 类似资料:
  • 问题内容: 我正在研究一种基于注释的方法,用于使用spring模块验证Spring bean 。在本教程中,以以下bean(省略了getter和setters)为例: 如果不遵守特定的验证规则,则会使用以下错误消息: 上面显示的类的示例包括: 消息键包含类名的事实带来了两个问题: 如果重命名该类,则还需要更改消息键 如果我有另一个类(例如Person),其类的电子邮件属性已与User.email进

  • 我想为上面的内容编写单元测试,以测试我正在使用的注释的sampleURL,比如如果我给出任何应该与regex模式匹配的URL。我浏览了以下链接:如何在spring中进行单元测试验证注释,如何使用JUnit测试类的验证注释?但它们没有多大帮助,我也有setSampleURL函数。那么,如何为sampleURL变量编写测试呢。基本上,我想为regex模式编写测试,即我给sampleURL的值是否与re

  • 我正在尝试使用Enunciate为我的REST API生成静态文档,该API是使用Spring MVC 3.2用Java编写的。Enuncite网站声称,它通过使用以下特定插件来支持Spring: http://enunciate.codehaus.org/module_spring_app.html 在查看配置选项时,看起来我应该导入一个spring applicationContext.xml

  • 问题内容: 我目前有一些单元测试,它们共享一组通用的测试。这是一个例子: 上面的输出是: 有没有办法重写上面的内容,这样就不会调用第一个? 编辑: 而不是运行上面的5个测试,我希望它仅运行4个测试,其中2个来自SubTest1,另外2个来自SubTest2。似乎Python unittest自己在运行原始的BaseTest,我需要一种机制来防止这种情况的发生。 问题答案: 使用多重继承,因此具有通

  • 我的spark应用程序中有一个方法从MySQL数据库加载数据。该方法看起来如下所示。 该方法除了执行方法并从数据库加载数据外,其他什么都不做。我该如何测试这种方法呢?标准方法是创建对象的模拟,该对象是的实例。但是由于有一个私有构造函数,所以我无法使用Scalamock来模拟它。 这里的主要问题是,我的函数是一个纯粹的副作用函数(副作用是从关系数据库拉数据),如果我在嘲笑时遇到问题,我如何单元测试这

  • 我正在尝试测试我的bean是否具有正确的验证注释。我正在使用sping-boot。这是一个示例测试用例: 我希望调用和以引发,并通过测试,但它们都失败了: 我的pom.xml: 为什么这里没有引发?bean属性有一个注释,bean本身是并且方法签名需要一个bean。 有没有一种简单的方法可以在测试类的上下文中引发该异常? 当我在服务接口的方法签名上使用验证注释时,一切都按预期工作。我不明白区别在哪