【问题标题】:Junit test; Is it possible to configure a Bean's default property, before application context starts up?Junit测试;是否可以在应用程序上下文启动之前配置 Bean 的默认属性?
【发布时间】:2015-07-27 02:51:04
【问题描述】:

我有一个带有属性“DBServer”的 Bean;它的默认值为“location1”;

在应用程序启动期间, 根据“DBServer”的值,实例化不同的类。

我有 200 个测试,这个默认设置很好。

但是,到目前为止,我想测试替代方案。

问题:

有没有办法在应用程序上下文启动之前从 junit 测试用例中重置默认值?

【问题讨论】:

  • 您应该考虑使用 Spring Profiles。 docs.spring.io/spring-boot/docs/current/reference/html/…
  • 这正是配置文件的用例
  • 我尝试使用@profiles("useProfile1");
  • @Resource public AnnotationConfigApplicationContext m_annotationConfigApplicationContext; ..................... m_annotationConfigApplicationContext.getEnvironment().setActiveProfiles("useProfile1"); m_annotationConfigApplicationContext.getEnvironment().setActiveProfiles("useProfile1Supplementary"); m_annotationConfigApplicationContext.register(AppConfig.class); m_annotationConfigApplicationContext.refresh(); ((ConfigurableApplicationContext) m_annotationConfigApplicationContext).close();
  • 但是......当我运行它............当我刷新时它会循环。

标签: java spring junit applicationcontext springjunit4classrunner


【解决方案1】:

Junit 不会启动应用程序上下文,除非您在 @before 注释下编写 setUp 方法。在这种情况下,您可以使用任何值初始化 bean。

【讨论】:

  • 好的,谢谢;从这里,我如何设置特定的类属性(例如)......
  • @Configuration public class configSetup { @Property(name="db.server", settable = Settable.OPTIONAL, defaultValue = "", description = "Host address.") public String dbServer = "" ; ......................................
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
相关资源
最近更新 更多