Estoy usando nuit con moq para probar mis controladores.pasando el parámetro burlado a la interfaz simulada
Uso una clase de sesión que tiene una interfaz y un HttpContext se inyecta en el constructor usando ninject. como este
public class SessionService : ISession
{
public HttpContext Context { get; set; }
public SessionService(HttpContext context)
{
this.Context = context;
}
}
public interface ISession
{
HttpContext Context { get; set; }
}
public HomeController(ISession session)
{
_session = session;
}
pienso con el fin de probar el controlador He burlarse de la HttpContext primero y luego pasar ese objeto en el la construtor de la ISession burlado. tengo esto hasta ahora
[Test]
public void index_returns_view()
{
//arrange
var mockHttpContext = new Mock<HttpContext>();
var mockContext = new Mock<ISession>(mockHttpContext);
var c = new HomeController(mockContext.Object);
//act
var v = c.Index() as ViewResult;
//assert
Assert.AreEqual(v.ViewName, "Index", "Index View name incorrect");
}
que construye pero nunit devuelve el siguiente error cuando se realiza la prueba
System.NotSupportedException: Tipo de burlarse debe ser una interfaz o una clase abstracta o no sellado.
Gracias por la ayuda.
mirada en 'HttpContextBase' –
si realmente necesita para burlarse de cualquier clase cerrada con su comportamiento personalizado, mira lunares proyecto de Microsoft. –