弹簧 - 烘烤成分分辨率

时间:2018-03-06 06:09:36

标签: java spring

依赖注入在理论上可能是好的 - 但在我们的世界中,它只是缓慢的。每当我们运行测试或启动我们的应用程序时 - spring会在对PathMatchingResourcePatternResolver的各种调用中花费50秒。

有没有办法防止这种情况 - 短路任何春天的发现,并在“当他们要求这个豆子,使用这个类”或类似的东西时烘烤 - 所以在春天没有搜索到零?

这里的主要驱动因素是创建一个弹簧上下文需要花费2分钟 - 这当然是手动运行单元测试的死亡,你希望它需要2毫秒。

2 个答案:

答案 0 :(得分:0)

您可以让test-applicationContest.xml仅初始化测试所需的依赖项。我相信当你运行JUnit测试时,你正在测试你的应用程序的一部分而不是整体,而这又需要初始化一些东西。您可以为不同的JUnit类提供多个test-applicationContext.xml文件。

JUnit with Spring提供了一些注释来加载特定的applicationContext文件。

答案 1 :(得分:0)

这听起来像你所指的单元测试实际上是需要Spring上下文和相关容器创建的集成测试。

对于单元测试,只需使用类似EasyMock的东西模拟注入的依赖项。

对于集成测试,请考虑仅测试层的相应切片以加快测试速度。见这里:

https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4

请记住,通过使用Spring测试支持,您将获得一个缓存的Spring上下文,因此如果您正在编写集成测试,通常只需要启动容器一次,因为Spring将在此之后缓存它。