[英]Spring Integration Testing methodologies?
我正在开发没有单元测试的已建立应用程序。 我想开始为此应用程序编写测试用例。 Bean Mocking不存在,需要花费我大量时间进行设置。 因此,为了快速起步,并且由于我们根本没有任何测试用例,我正在考虑设置集成测试,一旦对所有测试覆盖范围感到满意,我将慢慢着手将其转换为真实的单元。测试(通过模拟)。 由于应用程序很大,并且加载弹簧容器需要花费大量时间,因此我想对增加周转时间提出一些建议。 我可以想到几种方法。
一直运行一些轻量级的spring容器,并对该轻量级容器运行所有的单元测试用例。(或访问其applicationContext)
针对实际服务器运行测试用例。(从IDE远程运行Junit)
利用Spring Junit配置,并以某种方式防止为每个测试案例重新加载上下文。
我确信这个用例会在之前提出,任何见解都将受到高度赞赏。
上下文缓存是Spring的内置功能,因此,如果您的测试用例使用相同的配置文件(或文件集),Spring将不会重复重新加载上下文。 查看参考文档的“ 上下文管理和缓存”部分:
默认情况下,加载后,已配置的
ApplicationContext
将重新用于每个测试。 因此,每个测试套件仅产生一次安装成本,并且随后的测试执行要快得多。 在这种情况下,术语“测试套件”表示所有测试都在同一JVM中运行。
在Spring中运行测试时,可以将测试指向要运行测试的应用程序上下文配置。 因此,您不必使用生产应用程序上下文,可以进行特殊的配置进行测试。 我个人有一个“集成测试应用程序上下文”和一个“单元测试应用程序上下文”。 但是您可以进一步分解。
进行此设置的最简单方法是在超类上设置应用程序上下文,并使每个测试都从其中一个扩展。
例如。 设定:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:BaseSpringIntegrationTestContext.xml")
public abstract class BaseSpringIntegrationTest {
和
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:BaseSpringUnitTestContext.xml")
public abstract class BaseSpringUnitTest {
然后进行测试
public class BlahTest extends BaseSpringUnitTest {
下一步将是弄清楚如何加快Spring环境的启动。 对于某些测试,某些大型组件可能根本不需要加载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.