Поскольку программное обеспечение становится все более и более параллельным, как вы справляетесь с тестированием поведения ядра типа с вашими модульными тестами (не параллельным поведением, а только поведением ядра)?
В старые добрые времена у вас был тип, вы вызывали его, и вы проверяли, что он возвращал и / или как он называл другие вещи.
В настоящее время вы вызываете метод, и фактическая работа назначается назапустить на следующей доступной теме;вы не знаете, когда это действительно начнется и вызовет другие вещи - и более того, эти другие вещи могут быть параллельными.
Как вы справляетесь с этим?Вы абстрагируете / внедряете параллельный планировщик (например, абстрагируете библиотеку параллельных заданий и предоставляете подделку / макет в модульных тестах)?
С какими ресурсами вы столкнулись, которые вам помогли?
Редактировать
Я редактировал вопрос, чтобы подчеркнуть тестирование нормального поведения типа (игнорируя любой параллельный механизм, который используется для использования преимуществ многоядерности, например, TPL)