从Junit Suite访问Spring bean

时间:2015-12-11 07:06:42

标签: spring spring-boot junit4

我想要完成这个 - 运行后台进程(实际上是一个Solr实例),我的JUnit Suite中的所有测试都将使用它。

要执行此操作 - 创建一个使用@RunWith(Suites.class)注释的JUnit类。并在套件上添加ClassRule以启动服务器并停止它。套件中的单个测试使用@SpringApplicationConfiguration@RunWith(SpringJunit4ClassRunner.class)进行注释。我还需要访问套件中的一些Beans(如Spring托管设置bean)。什么是最好的方法。我尝试了什么。

  1. 使用@SpringApplicationConfiguration
  2. 进行带注释的单个测试
  3. 如果套件创建ApplicationContext通道 SpringApplication.run并访问它想要的任何bean(一个春天 例如,托管设置bean并使用它的ClassRules之一 这套房)。
  4. 我观察到每次都会创建ApplicationContext上下文,一个用于套件,因为我调用SpringApplication.run,每次测试都调用一个。{1}}我显然想避免这种情况,并且在这种情况下,测试运行之间的ApplicationContext缓存似乎也不起作用。

    那么处理这种情况的最佳做法是什么? 任何建议/建议将受到高度赞赏。

0 个答案:

没有答案