Al usar mi aplicación, me encontré con una condición de carrera en algún código que usa un NSOperationQueue
para ejecutar tareas de forma asíncrona después de eventos desencadenados por el usuario. Sé cómo arreglar la condición de carrera, ya que es un estúpido error de diseño que no voy a profundizar, pero me gustaría probar el error con un caso de prueba (para que no vuelva a aparecer durante la optimización/refactorización posterior). abajo de la línea). Esto me tiene perplejo. ¿Cómo se puede probar algo con múltiples subprocesos, especialmente cuando el objetivo de la prueba es generar una condición de carrera?¿Código de prueba de unidad basado en el hilo? Forzar una condición de carrera
¿Alguien tiene algún enlace al material de referencia al que me refiero cuando se trata de trabajar con hilos y pruebas de unidades? Estoy particularmente interesado en la generación de condiciones de carrera.
Supongo que se burlará de cualquier estructura de datos compartida, y dentro de sus objetos simulados puede hacer cualquier sincronización que necesite para que los diferentes hilos se ejecuten en el orden "incorrecto". –