Как к модульному тесту, что ExecutorService порождает новый поток для задачи?

Существуют тонны "хитрых" конструкций в C++. Они идут от "простого" implementions изолированные/окончательные классы использующее виртуальное наследование. И доберитесь до "довольно сложных" конструкций метапрограммирования, таких как Повышение MPL ( учебное руководство ). Возможности для стрельбы в себя в ноге бесконечны, но, если контролируется (т.е. закаленные программисты), обеспечьте часть лучшей гибкости с точки зрения пригодности для обслуживания и производительности.

8
задан Joshua Taylor 11 January 2018 в 21:33
поделиться

1 ответ

Макет ThreadFactory :

  ThreadFactory mock = new CustomObservableThreadFactory();
  ExecutorService executorService = Executors.newCachedThreadPool(mock);
  1. Внедрите ExecutorService в тестируемый класс как обычно
  2. Но используйте пользовательский ThreadFactory для создания кэшированный пул потоков: ThreadFactory будет вызываться всякий раз, когда должен быть вызван новый поток. Затем вы можете отслеживать эти экземпляры по своему усмотрению, например, с помощью прослушивателя или счетчика.
19
ответ дан 5 December 2019 в 08:52
поделиться