在不使用休眠的模拟流(因为它们会对中断做出反应)的情况下,如何测试我的应用程序代码的行为以应对 IO 性能非常差的情况?
例如,我想测试一个ConcurrentWrapper
具有文件 IO 线程池的实用程序。它将每个操作提交给一个ExecutorService
带有invokeAll()
超时的操作。我不仅要确认调用ConcurrentWrapper
在超时之前退出,而且还要确认它以某种方式使其内部线程ExecutorService
终止(以避免泄漏)。
我需要以某种方式模拟内部线程中的慢速 IO,但是以一种忽略中断的方式(就像真正的 IO 一样)。
澄清一下:没有像“睡觉和吞咽InterruptedException
”或“睡觉,抓住InterruptedException
然后继续睡觉”这样的答案是可以接受的。我想测试我的代码如何处理中断,而这种检测会通过处理它们本身来破坏目的。