1

カスタムIOpenIdAuthenticationインターフェイスから派生したオブジェクトをコンストラクターが受け取る AccountController がありますデフォルトでは、これはOpenIdRelyingPartyをラップするOpenIdAuthenticationServiceオブジェクトです。インターフェイスは次のようになります。

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をモックする方法がはるかに複雑に見えるため、よくわかりません。何か案は?

4

1 に答える 1

1

それほど複雑ではありません。認証のみを行う場合は、RedirectToProvider()をモックするだけで十分です。最も単純なケースでは、次のようになります。

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

お役に立てれば

于 2009-06-09T20:37:39.670 に答える