Как правило, вы не проводите модульное тестирование параллелизма многопоточных приложений, так как модульные тесты не являются надежными и воспроизводимыми - из-за природы ошибок параллелизма обычно невозможно написать модульные тесты, которые последовательно либо проваливаются, либо завершаются успешно, ипоэтому модульные тесты параллельного кода, как правило, не дают очень полезных модульных тестов.
Вместо этого вы тестируете модули каждого однопоточного компонента вашего приложения как обычно и полагаетесь на сеансы нагрузочного тестирования для выявления проблем параллелизма.
Тем не менее, существует несколько экспериментальных платформ для нагрузочного тестирования для тестирования одновременных приложений, таких как Microsoft CHESS - CHESS многократно запускает данный модульный тест и систематически исследует все возможные чередования одновременныхтестовое задание.Это делает ваши модульные тесты надежными и воспроизводимыми.
На данный момент, однако, CHESS все еще экспериментален (и, вероятно, не может использоваться с JVM) - на данный момент придерживайтесь нагрузочного тестирования, чтобы отсеять проблемы параллелизма.