Android Studioを使用すると、スレッドを使用するコードをテストするときに、例外がスローされることを確認する優れた解決策が見つかりました。テスト中のスレッドでUncaughtExceptionHandler
を使用し、join()
を使用してこのスレッドが終了するのを待ちます。別のスレッドでのカバレッジ付きのJunit例外
通常のテストでも、デバッグでも完璧に動作します。カバレッジ付きで実行すると問題が発生します。UncaughtExceptionHandler
はスローされた例外と呼ばれることはありません。そのため、例外が発生すると予想されるためテストが失敗します。
私が持っている仮説の1つは、スレッドがチェックされていない例外(つまり、どこか他の場所でキャッチされない)をスローしないように実行されているということです。しかし、これを検証したり、私は同時にカバレッジをデバッグして実行することはできません。