누군가가이 문제를 해결할 수 있는지 알고 싶습니다.단위 테스트 용 MVC 컨트롤러 모의 ApplicationUserManager
특정 컨트롤러에 대한 단위 테스트를 작성 중입니다.
var store = new Mock<IUserStore<ApplicationUser>>();
var emailService = new Mock<IIdentityMessageService>();
var applicationUserManager = new Mock<ApplicationUserManager>(store.Object, emailService.Object);
this.targetController.UserManager = applicationUserManager.Object;
var dataprotectionprovided = new Mock<IDataProtectionProvider>();
applicationUserManager.Setup(r => r.UserTokenProvider).Returns(new DataProtectorTokenProvider<ApplicationUser, string>(dataprotectionprovided.Object.Create("ASP.NET Identity")));
this.targetController.UserManager = applicationUserManager.Object;
:
public ApplicationUserManager(IUserStore<ApplicationUser> store, IIdentityMessageService emailService)
: base(store)
{
this.EmailService = emailService;
var dataProtectionProvider = Startup.DataProtectionProvider;
this.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));
}
이 내가 ApplicatonUserManager 클래스를 조롱하고있는 무슨이다 : 그것은 컨트롤러는 BaseController에서 상속 및 BaseController이 속성이 있는지 :
private ApplicationUserManager userManager;
public ApplicationUserManager UserManager
{
get { return this.userManager ?? this.Request.GetOwinContext().GetUserManager<ApplicationUserManager>(); }
set { this.userManager = value; }
}
ApplicationUserManager의 ctor에은을
나는 이것을 모의하려고했지만 이것이 가상 속성 (UserTokenProvider)이 아니기 때문에 나를 허락하지 않고이 예외가 발생합니다 :
System.NotSupportedException: Invalid setup on a non-virtual (overridable in VB) member: r => r.UserTokenProvider
누구든지이 문제를 해결할 수 있습니까? 난 그냥 그것을 균열 관리해야
@bwyn 도와
보다는 조롱하는 사람들을 중지합니까? – bwyn