我想写一个测试来验证@ConfigurationProperties
的@NotNull
,@NotEmpty
。
@Configuration
@ConfigurationProperties(prefix = "myPrefix", ignoreUnknownFields = true)
@Getter
@Setter
@Validated
public class MyServerConfiguration {
@NotNull
@NotEmpty
private String baseUrl;
}
我的测试如下所示:
@RunWith(SpringRunner.class)
@SpringBootTest()
public class NoActiveProfileTest {
@Test(expected = org.springframework.boot.context.properties.bind.validation.BindValidationException.class)
public void should_ThrowException_IfMandatoryPropertyIsMissing() throws Exception {
}
}
当我运行测试时,它报告在运行测试之前启动应用程序失败:
***************************
APPLICATION FAILED TO START
***************************
Description:
Binding to target org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'myPrefix' to com.xxxxx.configuration.MyServerConfiguration$$EnhancerBySpringCGLIB$$4b91954c failed:
我怎么能期望一个异常编写一个否定的测试呢?即使我用Throwable.class
替换BindException.class
,应用程序也无法启动。
2条答案
按热度按时间cygmwpex1#
我会使用
ApplicationContextRunner
来表示,例如。cs7cruho2#
尝试以编程方式加载Sping Boot 应用程序上下文:
简易版
扩展版本能够从www.example.com加载环境application-test.properties,并将自己的key:values添加到方法级别的测试环境中: