Spring框架如何保证测试代码不在生产环境中执行?

问题描述

我有一个简单的SpringBoot应用程序用于发送电子邮件。对于安全性度量,我想知道Spring Framework如何保证测试代码不在生产环境中执行。我在网上找不到关于解释如何测试Spring Boot应用程序的任何解释。

解决方法

Spring并没有采取任何措施阻止测试的执行。确保测试不在产品中运行的方法是:不要将其部署到产品中。

您的构建/部署过程需要确保它从要部署的工件中排除测试。将您的测试放在src / test下,并且maven不会将它们包含在它构建的工件中(如果通过创建测试jar来解决此问题,则将测试难于保留在不应包含的环境中)。 / p>

,

如果对测试代码使用JUnit测试,并且单元测试位于默认文件夹src / test / java中,则不会执行该测试。 Spring的ComponentScan不在那里搜索bean。

如果您有一些其他类型的测试代码(已写入常规代码中),则可以使用Spring Profiles来确保它没有执行。但是您不应将测试代码混入常规代码中,因为这是一种不良的编码风格。