2017-12-18 2 views
1

すべてのテストを実行する前にいくつかのメソッドを呼び出したいと思います。 ライブラリは、デバイスが使用するための準備初期化子を提供しています。すべてのjunitテストの前に、非同期コールバックを1回実行してください。

SomeLibraryInitializer.init(new SomeLibraryInitializer.Callback() { 
     @Override 
     public void onFinish() { 

     } 
    }); 

ライブラリはonFinishが呼び出されたときに使用できるようになりました。

ライブラリクラス(proguardが使用中)をモックできないため、私はJUnit testsにその初期化子を使用する必要があります。

コールバックonFinish()が呼び出されるまで待つ方法はありますか?

ShadowApplication.runBackgroundTasks();とセマフォを試しましたが、動作していないようです。 私は@BeforeClass Annotationを使ってすべてのテストを実行する前に実行しています。

答えて

1

は何が欲しいのはAndroidJUnitRunnerを拡張して、あなたはあなたが一度呼び出されonCreate方法が表示されますsourceを見れば、それは

android { 
    defaultConfig { 
     testInstrumentationRunner "com.example.MyTestRunner" 
    } 
} 

EDIT

ようbuild.gradleファイルをint型に設定することです。あなたがしたいことは、このメソッドを優先して独自のロジックを追加することです。その後、あなたが完了したらstart()と呼ぶべきです。

+0

私はどのように私の問題を解決することができないのか分かりません。あなたは例を教えていただけますか? – user1558070

関連する問題