1
私はアカウントコントローラーのコンストラクターが私のカスタムIOpenIdAuthenticationインターフェイスから派生したオブジェクトを取ります。既定では、OpenIdAuthenticationServiceオブジェクトは、OpenIdRelyingPartyをラップします。インターフェースは次のようになります。DotNetOpenIdを使用するASP.NET MVCコントローラを単体テストする方法を教えてください。
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を模擬するかどうかはわかりません。何か案は?
ああ、感謝を助けます!以前は嘲笑的なフレームワークを使っていませんでしたので、オブジェクトのすべての部分をモックする必要があるかどうかはわかりませんでした。 –
Moqを初めて使う人は、MockBehavior.LooseとMockBehavior.Strictの違いに注意してください。また、Moqライブラリには多くの自動モック機能があります。 –