Sto usando nuit con moq per testare i miei controller.passaggio parametro simulato all'interfaccia fittata
Io uso una classe di sessione che ha un'interfaccia e un HttpContext è iniettato nel costruttore usando ninject. simili
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;
}
ritengo per verificare il controller ho deridere HttpContext prima e poi passare tale oggetto nel l'construtor del ISession deriso. ho questo finora
[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");
}
che costruisce ma NUnit restituisce il seguente errore quando il test viene eseguito
System.NotSupportedException: Tipo di deridere deve essere un'interfaccia o una classe astratta o non sigillati.
Grazie per tutto l'aiuto.
sguardo 'HttpContextBase' –
se si ha realmente bisogno di prendere in giro qualsiasi classe sigillata con il vostro comportamento personalizzato, guarda progetto talpe di Microsoft. –