Estoy considerando reescribir algunos de mis controladores MVC para que sean controladores asíncronos. Tengo pruebas de unidad de trabajo para estos controladores, pero estoy tratando de entender cómo mantenerlos en un entorno de controlador asíncrono.Prueba de unidades de construcción para Controladores asíncronos MVC2
Por ejemplo, actualmente tienen una acción como esta:
public ContentResult Transaction()
{
do stuff...
return Content("result");
}
y mi unidad de prueba, básicamente se parece a:
var result = controller.Transaction();
Assert.AreEqual("result", result.Content);
Ok, eso es bastante fácil.
Pero cuando cambia su controlador a este aspecto:
public void TransactionAsync()
{
do stuff...
AsyncManager.Parameters["result"] = "result";
}
public ContentResult TransactionCompleted(string result)
{
return Content(result);
}
¿Cómo cree que sus pruebas de unidad debe construirse? Por supuesto, puede invocar el método de iniciador asíncrono en su método de prueba, pero ¿cómo obtiene el valor devuelto?
No he visto nada sobre esto en Google ...
Gracias por cualquier idea.
No puedo esperar a probarlo en el código, pero se ve fabuloso. Lo marcará como respondido después de que lo ejecute. ¡Muchas gracias! – ChrisW