Я сделал интерфейс со следующими методами:
Public Interface IAuthenticationService
Sub SetAuthentication(ByVal username As String)
Sub Logout()
Function IsLoggedIn() As Boolean
End Interface
Моя реализация выглядит так:
Public Class Authentication
Implements IAuthenticationService
Public Sub Logout() Implements IAuthenticationService.Logout
FormsAuthentication.SignOut()
LoggedIn = False
End Sub
Public Sub SetAuthentication(ByVal username As String) Implements IAuthenticationService.SetAuthentication
FormsAuthentication.SetAuthCookie(username, True)
LoggedIn = True
End Sub
Public Function IsLoggedIn() As Boolean Implements IAuthenticationService.IsLoggedIn
If LoggedIn Then Return True
Return False
End Function
Private _isLoggedIn As Boolean = false
Public Property LoggedIn() As Boolean
Get
Return _isLoggedIn
End Get
Set(ByVal value As Boolean)
_isLoggedIn = value
End Set
End Property
End Class
В моем классе контроллеров у меня есть действие, которое устанавливает билет в моей FormsAuthentication:
Public Function Login(ByVal username As String, ByVal password As String) As ActionResult
_authenticationService.SetAuthentication(username)
Return View()
End Function
Мой вопрос: как я могу проверить мою FormsAuthentication на моем классе аутентификации. Я использую Xunit / Moq для написания своих тестов. Когда я вызываю свое действие, я получаю «System.NullReferenceException: Ссылка на объект не установлена на экземпляр объекта», который говорит мне, что объект FormsAuthentication является Нулевым, и поэтому я не могу установить свой билет аутентификации.
Какое лучшее решение для решения этой проблемы. Я буду рад за некоторые примеры кода или ссылки, где я могу получить вдохновение. Особенно, если решение насмешливо ...