Aar*_*lla 18 junit spring state
我的Spring上下文中有几个bean有状态,所以我想在单元测试之前/之后重置该状态.
我的想法是一个方法添加到一个辅助类,它只是通过Spring上下文所有豆类去,检查是否存在标注有方法@Before
或@After
与调用它们.
如何从中获取实例化 bean 列表ApplicationContext
?
注意:简单地遍历所有定义的bean的解决方案是无用的,因为我有许多懒惰的bean,其中一些不能被实例化,因为对于某些测试会失败(即我有一个需要的bean,java.sql.DataSource
但测试工作因为他们不'需要那个豆).
Jos*_*tin 21
例如:
public static List<Object> getInstantiatedSigletons(ApplicationContext ctx) {
List<Object> singletons = new ArrayList<Object>();
String[] all = ctx.getBeanDefinitionNames();
ConfigurableListableBeanFactory clbf = ((AbstractApplicationContext) ctx).getBeanFactory();
for (String name : all) {
Object s = clbf.getSingleton(name);
if (s != null)
singletons.add(s);
}
return singletons;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21524 次 |
最近记录: |