visual unit test studio net español ejemplo c# .net unit-testing .net-2.0 mstest

studio - unit test c# ejemplo



¿Cómo fallar una prueba que está atascada en un bucle infinito? (2)

Tengo un código que produce un bucle infinito. Ahora necesito escribir una prueba que fallará después de unos 200 ms. 200 ms indicará que el código está en el bucle infinito.

Por ejemplo:

public void CodeUnderTest() { while(true) { } }


Al usar MSTest puedes usar un atributo

[TestMethod] [Timeout(200)]

Vea Cómo forzar las pruebas para detener la ejecución.

Puede establecer límites de tiempo con los cuales la ejecución de una prueba o de una ejecución de prueba cumplirá. Es posible que deba hacer esto, por ejemplo, si trabaja en un laboratorio de pruebas y necesita una ejecución de prueba para completar en una determinada hora del día.

Otro escenario para el uso de límites de tiempo es el de código que no responde.


qué pasa:

Task.Create(CodeUnderTest).Wait(TimeSpan.FromSeconds(1));

o:

Task.Factory.StartNew(CodeUndertest).Wait(TimeSpan.FromSeconds(1));

o:

Task.Factory.StartNew(() => CodeUndertest(arg1,arg2,arg3...)).Wait(TimeSpan.FromSeconds(1));