2011-09-30 49 views
1

现在我试图测试会话变量。比如我设置:C#测试修改后的会话变量

Session["test"] = "test"; 

然后:

if (blah) { Session["test"] = "foo"; } 
else if (testing) { Session["test"] = "foo2"; } 

我希望能够运行测试,以便根据我提出我可以看到,Session变量已适当改变的条件。我使用起订量尝试和我能够创建一个模拟会话,然后定义一个变量来返回特定的东西:

controllerContext.Setup(x => x.HttpContext.Session["test"]).Returns("test"); 

这不,虽然通过测试运行时更改。 如果我使用会话封装强烈键入变量,它似乎更加复杂,因为我尝试在控制器之间传递模拟会话和上下文。

我读了一些关于FakeContext和Fake Sessions而不是Mock的内容。我也听过一些关于使用代表的信息。真的,我只是试图模拟代码实际运行时发生的情况,并确保最终结果是我期望的,而且它恰好经常取决于我的Session变量。测试修改的最佳方法是什么?

回答