我正在尝试使用@Async测试注释的void方法。像这样的Smth:
@Async
public void asyncMethod()
{
//some actions
}
我知道有能力在测试中关闭任何执行不将@EnableConfig添加到我的测试弹簧配置文件中。 问题是我的测试弹簧配置类包含.xml配置。并且在该配置中启用了异步调用属性。 这是我的测试配置类:
@Configuration
@ImportResource(value = {/some paths to xml contexts})
@ComponentScan(basePackages = { "package" })
public class TestApplication
{
// beans
}
这就是在xml配置中启用异步调用的方式:
<task:annotation-driven executor="parallelUpdateExecutor" scheduler="scheduler" mode="aspectj"/>
我感兴趣,是否有能力在测试弹簧上下文中关闭异步调用? 感谢。
答案 0 :(得分:2)
最简单的方法是使用 bean定义配置文件。
您可以将<task:annotation-driven ...
声明放在XML文件的嵌套<beans profile="async" ...
部分中,然后仅通过@ActiveProfiles("async")
为需要它的测试激活该配置文件。
此致
Sam( Spring TestContext Framework的作者)