有什么方法可以测试Spring Boot Validated ConfigurationProperties

时间:2019-09-10 15:09:29

标签: spring spring-boot

Spring Boot外部化配置可以应用javax验证,该验证在启动时会出错。我想写一些自动化的东西,例如验证验证是否按预期工作的JUnit测试–在启动时引发BindingException违规。

例如

@ConfigurationProperties(prefix="acme")
@Validated
public class AcmeProperties {

    @NotBlank
    private String remoteAddress;

    // ... getters and setters

}

我希望使用以下简单的东西进行测试:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
@TestPropertySource(properties = "acme.remoteAddress=")
public class ValidatedBindingExceptionTest {

  @Autowired
  AcmeProperties acmeProperties;

  @Test(expected = BindException.class)
  public void bindingException() {
  }

}

由于至少两个原因,此方法不起作用。 1.由于稍后混合了TestProperty,因此BindingException永远不会发生。 2 BindingException会在ApplicationContext初始化时发生,因此必须在测试可以运行之前。

我觉得以某种方式验证此基本功能很重要,因为随着时间的流逝,出于多种原因,它可能会被意外禁用/删除。有人对如何测试有任何建议吗?

0 个答案:

没有答案