【发布时间】:2016-03-18 04:20:01
【问题描述】:
我在类库中有一个更新会话变量的函数。 ISession 作为参数从控制器传入,因此函数可以更改会话变量。
我想测试这个函数以确保会话变量被正确更新。
然而,首先,我只是想开始使用 XUnit 进行基本单元测试,但我无法让 Session 工作
[Fact]
public void CreateSessionVariable()
{
var httpContext = new DefaultHttpContext();
httpContext.Session.SetString("MyVar", "Hi");
Assert.True(httpContext.Session.Get("MyVar") != null);
}
在httpContext.Session.SetString 我得到错误:
尚未为此应用程序或请求配置会话
我知道在 MVC6 应用程序中您必须执行 services.AddSession() 和 app.UseSession() 之类的操作,但我不知道如何为单元测试设置这些内容。
如何配置 Session 以在单元测试中使用?
【问题讨论】:
-
这是一种 BCL 方法,you shouldn't test BCL method。相反,我建议您验证方法
SetString是否被调用。(链接中的图表可能会帮助您...)
标签: c# unit-testing session asp.net-core xunit