【问题标题】:Disable @Async calls in test context在测试上下文中禁用 @Async 调用
【发布时间】:2017-11-01 12:43:42
【问题描述】:

我正在尝试测试使用 @Async 注释的 void 方法。像这样的:

    @Async
    public void asyncMethod()
    {
        //some actions
    }

我知道可以在测试中关闭 anync 执行没有将@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"/>

我很感兴趣,是否可以在测试 spring 上下文中关闭异步调用? 谢谢。

【问题讨论】:

  • 不能将您的 Asyn 从 xml 删除到基于注释的配置?
  • No :)) 其他测试用它

标签: java spring asynchronous junit spring-test


【解决方案1】:

最简单的方法是使用 bean 定义配置文件

您可以将 &lt;task:annotation-driven ... 声明放在 XML 文件中的嵌套 &lt;beans profile="async" ... 部分中,然后仅通过 @ActiveProfiles("async") 为需要它的测试激活该配置文件。

问候

Sam(Spring TestContext 框架的作者

【讨论】:

    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多