Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9533

ASP.NET MVCでセッションの内容を確かめたい

$
0
0
セッションは本来Controller.HttpContextに属するため、中身を見ることはできない。 しかし、確認したい場合は出てくる。ビューでセッション変数を読み込む場合だ。 そこで、以下の様なコードをテストに入れる(MSTestを利用しているが、他のフレームワークに即した形で修正すれば大丈夫なはずだ)。 [TestMethod] public void Test() { var controllerContext = new Mock<ControllerContext>(); var session = new Mock<HttpSessionStateBase>(); var sessionValue = string.Empty; // セッションの値を受け取る変数 session.SetupSet(s => s["value"] = It.IsAny<object>()) .Callback((string name, object o) => { sessionValue = (string)o; }); controllerContext.Setup(p => p.HttpContext.Session).Returns(session.Object); var controller = new FooController { ControllerContext = controllerContext.Object }; var result = contoller.Index() as ViewResult; // FooController.Index()内でSession["value"]の値が"bar"に変わると想定 Assert.AreEqual(string.Empty, result.ViewName); Assert.AreEqual("bar", sessionValue); } 参考:Tales from the Evil Empire - Mocking indexer setters with Moq

Viewing all articles
Browse latest Browse all 9533

Trending Articles