我正在对我的控制器方法进行单元测试,以从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