Тест JUnit для интерфейса BlockingQueue - PullRequest
2 голосов
/ 29 октября 2011

Уже существует какой-либо существующий JUnit тест для тестирования BlockingQueue интерфейса?Какой-то класс, который я могу скачать, нажать кнопку воспроизведения, а затем он становится красным (надеюсь, зеленым :-)), и мне не приходится тратить целый день на размышления о тестовых случаях?

Я погуглил, но ничего не смог найти.

некоторые идеи?

РЕДАКТИРОВАТЬ: Контрольный пример, предоставленный G_H , был очень хорош для отладки основ.Может быть, есть еще хороший тест для многопоточного использования, который действительно провоцирует гонки и тупики?

1 Ответ

1 голос
/ 29 октября 2011

Поскольку интерфейс BlockingQueue является частью утилит параллелизма Java, которые были разработаны в рамках запроса спецификации Java 166 (JSR-166), я считаю, что код из соответствующего инструментария совместимости технологий (или «tck») должен быть хорошим отправная точка. В конце концов, реализации спецификации должны пройти тесты указанного набора, чтобы считаться совместимыми.

Мне не повезло получить его с сайта JCP (возможно, требуется членство), но ресурсы, кажется, доступны здесь . Интерес представляют BlockingQueueTest и его суперкласс JSR166TestCase, последние версии которого можно найти соответственно здесь и здесь . Кажется, что он лицензирован на условиях Creative Commons, но я советую вам проверить надежность данной ссылки и лицензионные ограничения в отношении вашего использования для себя.

К счастью, все это, похоже, использует JUnit. Я не уверен насчет версии, но они используют соглашение testMethod, а не аннотации. Я полагаю, что с некоторой адаптацией этот код может помочь вам в этом.

...