У меня есть класс с вложенным Microsoft.AspNet.Identity.UserManager, и я хочу ожидать, что метод userManager.CreateAsync(пользователь, пароль) вернет задание, в котором IdentityResult.Succeeded = true. Однако единственными доступными конструкторами для IdentityResult являются конструкторы отказов, которые приведут к тому, что свойство Succeeded будет false.
Как создать IdentityResult, который преуспел == true? IdentityResult не реализует интерфейс и Succeeded не является виртуальным, поэтому я не вижу каких-либо очевидных способов создания макетного объекта через Rhino Mocks (который я использую в качестве моей издевательской структуры).
Мой метод делает что-то вроде ниже. Предоставление этого примера, чтобы показать, почему я мог бы высмеять это.
public async Task<IdentityResult> RegisterUser(NewUser newUser)
{
ApplicationUser newApplicationUser = new ApplicationUser()
{
UserName = newUser.UserName,
Email = newUser.Email
};
IdentityResult identityResult = await applicationUserManager.CreateAsync(newApplicationUser, newUser.Password);
if(identityResult.Succeeded)
{
someOtherDependency.DoSomethingAmazing();
}
return identityResult;
}
Я пытаюсь написать unit test, который гарантирует, что вызывается someOtherDependency.DoSomethingAmazing(), если identityResult.Succeeded is true. Спасибо за любую помощь!