使用Flowable在Spring应用程序中进行集成测试

问题描述 投票:0回答:1

我需要使用Flowable为我的Spring应用程序编写一些集成测试。我的测试必须包括应用程序BPMN工作流逻辑。

我的问题是 - 我应该像在应用程序中那样在测试期间启动和部署正常的Flowable引擎吗?在official documentation中,我看到一些Flowable类准备用于单元测试,但没有用于集成。

在启动IT时,无法启动真正的Flowable引擎会导致性能问题吗?如果我需要分别在每个测试中运行它,我担心他们会花很长时间。你如何在你的应用程序中处理这个问题?

java spring activiti flowable
1个回答
1
投票

如果你问我,那么你应该在测试期间启动并部署一个正常的Flowable引擎。您从文档中粘贴的链接是您进行测试的确切方式。请记住,您可以使用自己的配置,您不需要特殊的Spring配置进行测试。

在测试期间启动真正的Flowable引擎不会导致任何性能问题。 Flowable存储库中的所有测试实际上都是在单个测试中创建和销毁引擎的测试,而且速度非常快。在您的情况下,它会更快,因为您不会为每个测试启动引擎(Spring应用程序上下文在测试之间缓存)。我还必须注意,即使你为每次测试启动引擎,时间也可以忽略不计,因为启动引擎的速度非常快。

请记住,Spring应用程序中的其他组件可能会减慢测试的开始。

作为flowable-spring模块的参考,在28个测试类中有76个测试,其中每个测试类都有自己的Spring配置,这意味着测试之间没有Spring上下文重用。所有这些测试在我的本地机器上需要55秒。对于那些测试,您需要考虑到一些测试正在测试异步执行程序正在运行并且比平常花费更多时间的一些复杂场景。你很可能不会有这样的测试。禁用这些特定测试(3个测试类别中的3个),测试时间降至28秒。

注意:如果您没有使用@Deployment,或者您依赖Flowable的自动部署功能,请确保删除您在测试中创建的实例。这将确保来自一个测试的数据不会影响来自另一个测试的数据。

© www.soinside.com 2019 - 2024. All rights reserved.