![]() |
1
5
您应该使用
正如上面提到的 Annotation Type SpringBootTest :
这将只加载必需的类。如果不指定,它可能会加载数据库配置和其他东西,这会使测试变慢。
另一方面,如果您真的想要进行单元测试,那么可以在没有Spring的情况下测试此代码-然后
|
![]() |
2
2
我不得不稍微改变一下,解决一个类似的问题。我想分享这方面的细节,认为这可能会给那些遇到类似问题的人提供选择。
我想编写集成测试,只加载必要的依赖项,而不是所有的应用程序依赖项。所以我选择使用
总之,可以使用@DataJpaTest+@ComponentScan和包名的组合来加载特定于层的依赖项,而不是@SpringBootTest。这甚至可以帮助我们微调设计,以更准确地表示依赖关系。 设计之前1.com。Java语言服务ServiceOneImpl
2.com。Java语言服务ServiceTwoImpl
3、ServiceOneIntegrationTest
4、ServiceTwoIntegrationTest。Java语言
微调包名称后1.com。Java语言服务一ServiceOneImpl
2.com。Java语言服务二ServiceTwoImpl
3、ServiceOneIntegrationTest
4、ServiceTwoIntegrationTest。Java语言
|
![]() |
3
0
单元测试应该单独测试组件。您甚至不需要使用Spring测试上下文框架进行单元测试。您可以使用Mockito、JMock或EasyMock等模拟框架来隔离组件中的依赖项并验证期望。 如果您想要一个真正的集成测试,那么需要在测试类上使用@SpringBootTest注释。如果不指定classes属性,它将加载@SpringBootApplication注释类。这会导致加载生产组件,如db连接。 为了消除这些问题,定义一个单独的测试配置类,例如定义一个嵌入式数据库而不是生产数据库
|
![]() |
Dónal · Spring Boot应用程序中的伪造证明文件类型验证 6 月前 |