如何模拟Asp.net身份UserManager的CreateAsync方法

iAteABug_And_iLiked_it

我正在尝试模拟UserStore的CreateAsync方法以在内存中存储用户。

public void Can_Create_User()
{
    //Arrange
    var dummyUser = new ApplicationUser() { UserName = "PinkWarrior", Email = "[email protected]" };
    var mockStore = new Mock<IUserStore<ApplicationUser>>();

    var userManager = new UserManager<ApplicationUser>(mockStore.Object);
    mockStore.Setup(x => x.CreateAsync(dummyUser))
                .Returns(Task.FromResult(IdentityResult.Success));


    //Act
    Task<IdentityResult> tt = (Task<IdentityResult>)mockStore.Object.CreateAsync(dummyUser);
    var user = userManager.FindByName("PinkWarrior");

    //Assert
    Assert.AreEqual("PinkWarrior", user.UserName);
}

user上面总是空的,因为我从来没有插入。因此,我的问题是如何制作userManager,这不是从模拟存储中返回用户的模拟?

这个答案有点相似,但是在这里没有回答我的问题。

任何帮助,不胜感激

米兰尼奥

您需要模拟对FindByNameAsync的调用,因为这是UserManager所调用的:

public void Can_Create_User()
{
    //Arrange
    var dummyUser = new ApplicationUser() { UserName = "PinkWarrior", Email = "[email protected]" };
    var mockStore = new Mock<IUserStore<ApplicationUser>>();

    var userManager = new UserManager<ApplicationUser>(mockStore.Object);
    mockStore.Setup(x => x.CreateAsync(dummyUser))
                .Returns(Task.FromResult(IdentityResult.Success));

    mockStore.Setup(x => x.FindByNameAsync(dummyUser.UserName))
                .Returns(Task.FromResult(dummyUser));


    //Act
    Task<IdentityResult> tt = (Task<IdentityResult>)mockStore.Object.CreateAsync(dummyUser);
    var user = userManager.FindByName("PinkWarrior");

    //Assert
    Assert.AreEqual("PinkWarrior", user.UserName);
}

但是,我相信通过这种测试,您正在测试Microsoft.AspNet.Identity.UserManager,而不是您的代码。您证明的是UserManager以某种方式调用了您的模拟存储。

Microsoft.AspNet.Identity的源代码包含这些类型的测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何模拟Asp.net身份UserManager的CreateAsync方法

来自分类Dev

ASP.NET CORE身份UserManager CreateAsync模式错误

来自分类Dev

如何测试Asp.Net身份UserManger CreateAsync

来自分类Dev

如何在ASP.NET 5中模拟UserManager

来自分类Dev

ASP.NET身份:UserManager.PasswordHasher.VerifyHashedPassword不断失败

来自分类Dev

如何模拟UserManager <IdentityUser>

来自分类Dev

如何模拟对ASP.Net WebForm页面的请求?

来自分类Dev

ASP.net身份:如何获取当前的IdentityUser(ApplicationUser)?UserManager.FindById在哪里?

来自分类Dev

如何删除使用UserManager.CreateAsync创建的用户

来自分类Dev

如何在 UserManager 类中模拟 GetUserAsync 方法?

来自分类Dev

如何访问ASP.NET UserManager

来自分类Dev

实体框架6和Asp.Net身份UserManager:多个DbContext

来自分类Dev

实体框架6和Asp.Net身份UserManager:多个DbContext

来自分类Dev

Asp.Net身份-自定义数据库访问UserManager

来自分类Dev

ASP.NET Core 1.1 用户模拟身份

来自分类Dev

如何在 initialize() 方法中使用 userManager ASP.net MVC 5

来自分类Dev

ASP.NET用户模拟

来自分类Dev

如何使用ASP.NET Identity 2.0允许用户模拟另一个用户?

来自分类Dev

如何在Asp.Net MVC 4中模拟HttpContext.User.Identity.Name

来自分类Dev

如何在ASP.NET Core 1 MVC 6中模拟IFormFile进行单元/集成测试?

来自分类Dev

如何在Asp.Net MVC 4中模拟HttpContext.User.Identity.Name

来自分类Dev

python如何模拟方法?

来自分类Dev

如何模拟内置方法

来自分类Dev

如何模拟@PrePersist方法?

来自分类Dev

如何模拟内置方法

来自分类Dev

如何模拟嵌套方法?

来自分类Dev

如何模拟模拟对象的方法调用?

来自分类Dev

如何使模拟方法返回相同的模拟

来自分类Dev

如何访问从模拟库返回的模拟方法

Related 相关文章

  1. 1

    如何模拟Asp.net身份UserManager的CreateAsync方法

  2. 2

    ASP.NET CORE身份UserManager CreateAsync模式错误

  3. 3

    如何测试Asp.Net身份UserManger CreateAsync

  4. 4

    如何在ASP.NET 5中模拟UserManager

  5. 5

    ASP.NET身份:UserManager.PasswordHasher.VerifyHashedPassword不断失败

  6. 6

    如何模拟UserManager <IdentityUser>

  7. 7

    如何模拟对ASP.Net WebForm页面的请求?

  8. 8

    ASP.net身份:如何获取当前的IdentityUser(ApplicationUser)?UserManager.FindById在哪里?

  9. 9

    如何删除使用UserManager.CreateAsync创建的用户

  10. 10

    如何在 UserManager 类中模拟 GetUserAsync 方法?

  11. 11

    如何访问ASP.NET UserManager

  12. 12

    实体框架6和Asp.Net身份UserManager:多个DbContext

  13. 13

    实体框架6和Asp.Net身份UserManager:多个DbContext

  14. 14

    Asp.Net身份-自定义数据库访问UserManager

  15. 15

    ASP.NET Core 1.1 用户模拟身份

  16. 16

    如何在 initialize() 方法中使用 userManager ASP.net MVC 5

  17. 17

    ASP.NET用户模拟

  18. 18

    如何使用ASP.NET Identity 2.0允许用户模拟另一个用户?

  19. 19

    如何在Asp.Net MVC 4中模拟HttpContext.User.Identity.Name

  20. 20

    如何在ASP.NET Core 1 MVC 6中模拟IFormFile进行单元/集成测试?

  21. 21

    如何在Asp.Net MVC 4中模拟HttpContext.User.Identity.Name

  22. 22

    python如何模拟方法?

  23. 23

    如何模拟内置方法

  24. 24

    如何模拟@PrePersist方法?

  25. 25

    如何模拟内置方法

  26. 26

    如何模拟嵌套方法?

  27. 27

    如何模拟模拟对象的方法调用?

  28. 28

    如何使模拟方法返回相同的模拟

  29. 29

    如何访问从模拟库返回的模拟方法

热门标签

归档