【发布时间】:2018-10-06 16:14:50
【问题描述】:
我正在对我的控制器方法进行单元测试,以获取来自 ClaimsPrincipal 对象的信息,但 Current.FindFirst() 没有返回任何内容,有人可以帮忙吗?谢谢。 (用VB和C#编写也可以):
Public Class TestController
Public Function GetEmail() As String
Return ClaimsPrincipal.Current.FindFirst(ClaimTypes.Name).Value
End Function
End Class
<TestMethod()>
Public Sub Test()
//Arrange
Dim fackClaimPrinciple = New Mock(Of ClaimsPrincipal)()
Dim claims = New List(Of Claim)() From {New Claim(ClaimTypes.Name, "user@hotmail.com")}
fackClaimPrinciple.Setup(Function(e) e.Claims).Returns(claims)
Thread.CurrentPrincipal = fackClaimPrinciple.[Object]
// Act
Dim result = TestController.GetEmail()
'... ClaimsPrincipal.Current.FindFirst(ClaimTypes.Name).Value Returns nothing??
End Sub
【问题讨论】:
标签: .net asp.net-mvc vb.net unit-testing