Actualmente estoy escribiendo una mini aplicación simple basada en temporizador en C# que realiza una acción n veces cada k segundos.
Estoy tratando de adoptar un estilo de desarrollo basado en pruebas, por lo que mi objetivo es probar todas las partes de la aplicación.Unidad probando una aplicación basada en temporizador?
Entonces, mi pregunta es: ¿hay una buena manera de probar la unidad de una clase basada en temporizador?
El problema, como yo lo veo, es que hay un gran riesgo de que las pruebas se llevarán a incómodamente tiempo para ejecutarse, ya que tienen que esperar tanto y tanto tiempo para que las acciones deseadas sucedan.
Especialmente si uno quiere datos realistas (segundos), en lugar de utilizar la resolución de tiempo mínima permitida por el marco (1 ms?).
Estoy usando un objeto de simulacro para la acción, para registrar el número de veces que se llamó a la acción, y para que la acción no tome prácticamente ningún tiempo.
El único problema que veo con su enfoque es que probablemente tendrá que exponer algo que sucede cada vez que las encuestas suceden, ¿es una buena idea? es decir, exponer algo que no tiene que hacer solo para las pruebas. Una alternativa podría ser interna (e InternalsVisibleTo), pero a mucha gente tampoco le gusta eso – roundcrisis