たとえば、次のように呼び出すコードを考えてみましょう。
file = new RandomAccessFile(x, "r");
file.getChannel().map(....)
ClosedByInterruptException 状況を処理したいと考えています。現実的で再現可能な単体テストを作成する方法に困惑しています。
テストを行うには、何らかの方法でこのスレッドを他のスレッドと同期させ、他のスレッドが適切なタイミングで Thread#interrupt を呼び出すようにする必要があります。ただし、待機するためのすべてのプリミティブは、まあ、割り込み可能であり、割り込みをクリアします。
今のところ、テスト中のコードで Thread.currentThread().interrupt を取得しています (単体テストで要求されているように) が、これは実際の非同期割り込みとまったく同じではありませんね。