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