我正在为基于spring启动的应用程序编写junits,而我的bean依赖于application-.properties中指定的一些配置参数。 在我的配置类我在哪里产生豆类,捕捉应用程序上下文错误spring junit
@Configuration
public class AppConfig{
@Value("${MyProperty}")
private String myProperty;
@Bean
public myBean bean1() throws MyException{
if(myProperty.contentEquals("abc"){
throw MyException("Value abc not allowed for bean1");
}
}
在我的JUnit我要检测这种情况下,如果在我的JUnit我设置配置文件并运行它出现了错误说“应用程序启动失败”,并没有达到我之前的方法或测试方法。
我该如何处理这个问题,以便junit不会失败,并且我也能够检测到myexception。 基本上我需要的是应用程序上下文创建失败,但我的单元测试通过。
谢谢!
我明白物业标注的条件,谢谢您建议。 但是这打开了应用程序即使未创建bean也会启动的另一个问题。我不应该让这种情况发生。 从我的理解,只有通过在bean工厂方法中引发异常才有可能。 这就是我目前在我的代码中所做的事情。在我的单元测试中,我可以检测到吗? – Avis
在这种情况下,您将不得不直接在您的测试方法中启动上下文以检测异常 – dimitrisli
您可以提出建议吗?我使用SpringRunner进行单元测试。 – Avis