为每个测试用例启动一个springboot项目

时间:2019-08-15 17:52:23

标签: spring-boot

我们正在使用Spring Boot开发微服务的测试用例。要求之一是,对于每个Junit测试用例,我们需要:

  • 启动项目
  • 测试单位案例并
  • 然后停止该项目。

我认为这是一种反模式,但这是必要条件。

我环顾了互联网,但找不到相同的解决方案。我能够启动Web服务器,但是它没有提供任何响应,这可能是因为未将项目分配给服务器。

有人对如何实现这一目标有任何想法吗?

PS:我们不想使用Mockito

1 个答案:

答案 0 :(得分:1)

在此之前,我想指出这是一个非常糟糕的做法,应该避免。这种方法不能正确实现单元测试概念,因为您正在测试整个系统,因此JUnit将不是正确的工具。

我四处寻找,但似乎没有找到一个能够做到这一点的Runner(尽管这并不令我感到惊讶),最相似的Runner可能是SpringJUnit4ClassRunner,它可以在您的测试空间中提供完整的Spring上下文,但不会与该应用程序一起上线。

我建议您是否真的要使用此方法,是使用诸如REST Assured之类的工具针对实时应用程序进行端到端API层测试,但这意味着您必须找到另一种启动应用程序的方法,然后将REST保证测试指向该启动的应用程序。也许是一个Shell脚本启动了应用程序,然后启动了REST Assured测试套件,然后在套件结束时放下服务器。

我强烈建议您与您的产品/管理团队聊天,以避免此类情况,因为测试将永远运行,并且如果您要通过REST或其他方式持久存储数据或其他系统,则将污染本地或远程数据库。 SOAP调用。