SpringRunner只初始化给定的bean
我正在尝试实施Spring集成测试,我正在考虑两种方法:SpringRunner只初始化给定的bean,spring,spring-mvc,spring-test,Spring,Spring Mvc,Spring Test,我正在尝试实施Spring集成测试,我正在考虑两种方法: 对于每个测试,都有不同的配置,并且只初始化给定测试所需的bean。这意味着测试是隔离的,Spring上下文应该很快初始化,因为它不需要两个多的依赖项。我会用它来忽略单元化bean: <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"> <property name="requ
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor">
<property name="requiredParameterValue" value="false" />
</bean>
缺点是每个测试都有单独的applicationContext.xml
。这种双重性尤其令人不快,因为80%的配置对于每个测试都是相同的。有没有一种方法可以定义bean,以便在测试中直接初始化,而不必使用单独的XML进行配置你能评论一下这两种方法吗,哪一种更标准、更合适?正如M.Deinem指出的那样 是的,SpringTestContext框架就是这么聪明,自从我在2007年引入它以来就一直如此 上下文缓存实际上是SpringTestContext框架的主要特性之一
有关详细信息,请参阅《Spring参考手册》中“测试”一章的章节。为什么需要在测试之间重新启动应用程序?找到另一种方法(重新)使用数据。Spring只会启动应用程序一次,并在默认情况下将其重新用于不同的测试(因此,在我看来,基本上就像是在框架周围工作一样)。默认情况下,这真的有那么聪明吗?对我来说,类
TestSomethingIT
和testsomethingeleit
都有注释@RunWith(SpringRunner::class)
很奇怪,它会发现它们在@ContextConfiguration
中都有相同的applicationContext.xml
,因此不会运行应用程序两次,每个测试类一次。是的,默认情况下就是这样。