Как выполнить модульное тестирование контроллера ASP.NET MVC, использующего DotNetOpenId? - PullRequest
1 голос
/ 09 июня 2009

У меня есть AccountController , конструктор которого берет объект, полученный из моего пользовательского интерфейса IOpenIdAuthentication . По умолчанию это объект OpenIdAuthenticationService , который включает OpenIdRelyingParty . Интерфейс выглядит следующим образом:

public interface IOpenIdAuthentication {
    IAuthenticationResponse Response { get; }
    IAuthenticationRequest CreateRequest(string identifier);
}

Я могу издеваться IAuthenticationResponse :

_mockResponse = new Mock<IAuthenticationResponse>(MockBehavior.Loose);
_mockResponse.SetupGet(r => r.ClaimedIdentifier).Returns(identifier);
_mockResponse.SetupGet(r => r.Status)
    .Returns(AuthenticationStatus.Authenticated);
// ... removed the formatting of 'friendlyId' ...
_mockResponse.SetupGet(r => r.FriendlyIdentifierForDisplay).Returns(friendlyId);

Однако я не уверен, как издеваться IAuthenticationRequest , поскольку это выглядит намного сложнее. Есть идеи?

1 Ответ

1 голос
/ 10 июня 2009

Это не намного сложнее. Если вы делаете только аутентификацию, тогда будет достаточно насмешливого RedirectToProvider (). В простейшем случае это выглядит так:

_mockRequest = new Mock<IAuthenticationRequest>(MockBehavior.Strict);
_mockRequest.Setup(r => r.RedirectToProvider());

Надеюсь, это поможет

...