use*_*176 13 spring unit-testing spring-test
例如,现在我必须在每个测试类中完成
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class)
Run Code Online (Sandbox Code Playgroud)
我想摆脱
@ContextConfiguration(loader=AnnotationConfigContextLoader.class)
Run Code Online (Sandbox Code Playgroud)
并希望Spring扫描我项目中的所有bean.
我怎样才能做到这一点?
Bij*_*men 47
你可以这样做:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyTest {
@Test
public void testSomething() {
}
@Configuration
@ComponentScan("basepackage")
public static class SpringConfig {
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下@ContextConfiguration会查找带注释的静态内部类@Configuration,这就是为什么这个设置才有效.
您可以完全摆脱装载程序参数,这不是必需的
如果你在xml文件中有弹簧配置,你会使用类似的东西:
@ContextConfiguration(locations="classpath:applicationContext.xml")
Run Code Online (Sandbox Code Playgroud)
如果您使用Java Config,那么您将使用
@ContextConfiguration(classes=Config.class)
Run Code Online (Sandbox Code Playgroud)
我在上面的示例中使用了通用名称,您当然需要适应项目的配置.
在这两种情况下,都需要为Spring启用Spring的组件扫描来拾取带注释的类.
| 归档时间: |
|
| 查看次数: |
27773 次 |
| 最近记录: |