私は立ち往生しており、喜んで助けを求めます!
Android ライブラリのテストを書いています。タスクは、アクティビティでいくつかのアクションを実行し、ライブラリが正しく応答することを確認することです。私の問題は、アクティビティのすべてのアクションが完了した直後にテストが終了することですが、コールバックを介してテスト結果を取得します (そして、テストが終了したときにのみこのコールバックを受け取ります)。したがって、コールバックが受信されるまで (または時間がなくなるまで)、テストが終了しないことをテスト フレームワークに伝えたいと思います。これが私が今持っているものです:
@Test
public void testSimpleSetup() {
/* ... */
InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
@Override
public void run() {
testManager.startTest(MAX_WAIT_TIME); // this object calls onTestResult(boolean) after time t (t <= MAX_WAIT_TIME)
/* working with activity here */
}
});
InstrumentationRegistry.getInstrumentation().waitForIdleSync();
}
@Override
public void onTestResult(boolean passed) {
// assertTrue(passed);
Assert.fail();
}
このテストは失敗すると思いますが、実際onTestResult
には終了後に呼び出されtestSimpleSetup
、Assert はテストの結果に影響しません。
前もって感謝します。