moqでnuitを使用してコントローラをテストしています。モックされたパラメータを模擬インターフェイスに渡す
インターフェイスを持つセッションクラスを使用し、ninjectを使用してコンストラクタにHttpContextを注入します。
このよう 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;
}
私は最初のHttpContextを模擬した後嘲笑ISessionのコンストラクタにそのオブジェクトを渡したコントローラをテストするために考えます。 私はこれを持って、これまでにNUnitのテストが
System.NotSupportedException実行される次のエラー返しますが、ビルドし
[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");
}
:インタフェースまたは抽象または非密封されたクラスでなければならない模擬するタイプ。
ありがとうございました。
は 'HttpContextBase' –
に見えます。 –