2017-11-01 14 views
1

@Asyncで注釈を付けられたvoidメソッドをテストしようとしています。テストコンテキストで@Async呼び出しを無効にする

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

私は私のテスト春コンフィギュレーションファイルに@EnableConfigを追加しないテストでanync実行をオフにする機能があることを知っている:このようななめらか。 問題は、私のテストスプリング構成クラスに.xml構成が含まれていることです。そして、非同期呼び出しプロパティは、そのconfigsで有効になります。 これは私のテストのconfigクラスです:

@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

annotionベースの設定にXMLからあなたのASYNを削除するオプションではありませんか? – MatMat

+0

いいえ:))他のテストで使用しています – Sviatlana

答えて

0

最も簡単な方法は、bean定義プロファイルを使用することです。

XMLファイルのネストされた<beans profile="async" ...セクションに<task:annotation-driven ...宣言を置き、@ActiveProfiles("async")で必要なテストに対してのみ、そのプロファイルをアクティブにすることができます。

よろしく

サム(春TestContextフレームワークの著者)

関連する問題