Java 在Spring中单元测试一个JSR303验证程序类

Java 在Spring中单元测试一个JSR303验证程序类,java,spring,unit-testing,bean-validation,Java,Spring,Unit Testing,Bean Validation,我想在Spring中对一个验证器类进行单元测试。还有6个现有的验证程序类,但它们没有单元测试,所以我只想测试我的验证程序类。 我的问题是,当我运行我的单元测试(只测试我的类)时,“不知何故”另一个验证器类正在被测试。。。(它没有单元测试) 这是否可能是LocalValidatorFactoryBean扫描所有验证器类并运行其isValid方法的默认行为? 我能否以某种方式指定必须测试的验证器类?比如定义ConstraintValidatorFactory Java测试类 @RunWith(Spr

我想在Spring中对一个验证器类进行单元测试。还有6个现有的验证程序类,但它们没有单元测试,所以我只想测试我的验证程序类。 我的问题是,当我运行我的单元测试(只测试我的类)时,“不知何故”另一个验证器类正在被测试。。。(它没有单元测试)

这是否可能是LocalValidatorFactoryBean扫描所有验证器类并运行其isValid方法的默认行为? 我能否以某种方式指定必须测试的验证器类?比如定义ConstraintValidatorFactory

Java测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/applicationContext-test-validator.xml"})
public class MyValidatorTest {

    @Autowired
    private Validator validator;

    @Test
    public void testIsValid_true() {
        ...
        Set<ConstraintViolation<Record>> violations = validator.validate(data);
        ...
    }
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(位置={“/applicationContext测试验证程序.xml”})
公共类MyValidator测试{
@自动连线
私人验证器;
@试验
公共无效证明有效(真){
...
设置冲突=validator.validate(数据);
...
}
}
应用程序上下文XML

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" /> 
</beans>

谢谢,
V.

这不是单元测试,而是集成测试。如果您只想测试您的验证器,那么只测试您的验证器。不要依赖基础设施bean。您应该实例化验证器,调用lifecycle方法并调用
isValid
方法。那么您就有了一个合适的单元测试。嗨,Deinum,谢谢您的回复!是的,你是对的,我想要的是一个集成测试。我会按照你的建议去做,但是如果我想按照上面描述的那样去做,我应该如何配置我的spring环境呢?谢谢,V。这可能对你有帮助。