检查是否使用Moq从另一个方法调用了一个方法

nemo_87

我对Moq相当陌生,我不确定这是否有可能,但是可以说,如果我有一个命名的方法,GeneratedHashedAndSaltedPassword()而我正在从命名的方法中对该方法进行调用,那么我CheckUsersPassword()是否有可能从单元测试Moq中编写代码表示以下内容的表达式:验证是否GeneratedHashedAndSaltedPasswordCheckUsersPassword方法中调用

CheckUsersPassword如果该GeneratedHashedAndSaltedPassword方法无任何异常地调用方法,我将知道该方法正确执行

我现在所拥有的并不多,因为我在Moq方面遇到了困难,这是合乎逻辑的。

[Test]
public void CheckIfPasswordIsHashed_Test()
{
    var securityServiceMock = new Mock<User>();
    securityServiceMock.Setup(m => m.CheckUsersPassword(It.IsAny<string>())).Returns(true);
    securityServiceMock.VerifyAll();
}

我试图设置CheckUsersPassword,但我仍然不知道如何甚至不需要执行验证。有人在这种问题上有更多经验吗?

这是CheckUserPassword的作用:

public bool CheckUsersPassword(string password)
{
    return SecurityService.GenerateHashedAndSaltedPassword(password, Salt) == Password;
}

它可以简单地调用GenerateHashedAndSaltedPassword()并将结果与​​当前用户密码进行比较。

丹尼尔·杜谢克(DanielDušek)

重要的是要区分使用单元测试进行测试的代码和该代码的外部依赖关系。外部依赖关系使用MOQ进行了模拟,但是必须实例化并直接在单元测试中调用已测试的代码。

在您的问题中,我假设您测试了该方法,CheckUsersPassword并且这SecurityService是一个应该被模拟的依赖项。

在测试中,您必须创建类的实例(其中包含测试的方法),并以某种方式将依赖关系的模拟传递给该测试的类。

[Test]
public void CheckIfPasswordIsHashed_Test()
{
    // Arrange
    // Mock dependency which is the service and setup
    // GenerateHashedAndSaltedPassword so it does what you need  
    var securityServiceMock = new Mock<User>();
    securityServiceMock.Setup(m => m.GenerateHashedAndSaltedPassword(
        It.IsAny<string>(), 
        ItIsAny<Salt>())
    .Returns(Password);

    // TestedClass needs a place where the mocked instance can be injected,
    // e.g. in constructor, or public property
    var testedClass = new TestedClass(securityServiceMock.Object);

    // Act
    testedClass.CheckUsersPassword(password);

    // Assert
    securityServiceMock.Verify(m => m.GenerateHashedAndSaltedPassword(
        It.IsAny<string>(), 
        ItIsAny<Salt>()), 
    Times.Once());
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果调用了另一个方法,则调用一个方法

来自分类Dev

Python,无法断言是否从另一个类调用了方法

来自分类Dev

如何检查一个方法是否从同一类调用另一个方法?

来自分类Dev

C ++编译时检查是否在另一个函数之前调用了一个函数

来自分类Dev

Python Mock - 检查方法是否是从另一个类调用的?

来自分类Dev

检查一个单词是否是另一个单词的轮换的方法

来自分类Dev

是否可以从另一个调用一个jax-rs方法?

来自分类Dev

检查用户是否使用了另一个提供程序的firebase

来自分类Dev

在一个类中使用python方法检查另一个类对象中的变量是否相同

来自分类Dev

测试是否已在控制器中调用了另一个作用域的方法

来自分类Dev

如果在另一个方法中调用了一个方法,如何使用 rspec 进行测试?

来自分类Dev

如何知道在odoo中从哪个类调用了另一个类的方法

来自分类Dev

是否在viewDidLayoutSubviews之后调用了一个方法?

来自分类Dev

在另一个方法中调用另一个方法时出错

来自分类Dev

使用main方法从另一个类调用一个类

来自分类Dev

如何启动一个Activity并使用另一个类调用该类的方法

来自分类Dev

如何使用 Mockito 验证在测试期间调用了 SUT 的另一个公共方法

来自分类Dev

如何从另一个类中迅速调用另一个方法?

来自分类Dev

通过调用另一个方法退出方法

来自分类Dev

从另一个JNI方法调用JNI方法

来自分类Dev

从另一个impl方法调用impl方法

来自分类Dev

调用与另一个方法同名的对象的方法

来自分类Dev

通过调用另一个方法退出方法

来自分类Dev

从另一个测试方法调用测试方法

来自分类Dev

在调用另一个方法时调用一个方法

来自分类Dev

JUnit调用一个方法并调用另一个方法将返回nullPointerException

来自分类Dev

检查使用 CMockery 测试的函数是否调用另一个特定函数

来自分类Dev

检查方法是否是rspec中另一个方法的别名

来自分类Dev

检查另一个方法的结果是否为if语句的方法

Related 相关文章

  1. 1

    如果调用了另一个方法,则调用一个方法

  2. 2

    Python,无法断言是否从另一个类调用了方法

  3. 3

    如何检查一个方法是否从同一类调用另一个方法?

  4. 4

    C ++编译时检查是否在另一个函数之前调用了一个函数

  5. 5

    Python Mock - 检查方法是否是从另一个类调用的?

  6. 6

    检查一个单词是否是另一个单词的轮换的方法

  7. 7

    是否可以从另一个调用一个jax-rs方法?

  8. 8

    检查用户是否使用了另一个提供程序的firebase

  9. 9

    在一个类中使用python方法检查另一个类对象中的变量是否相同

  10. 10

    测试是否已在控制器中调用了另一个作用域的方法

  11. 11

    如果在另一个方法中调用了一个方法,如何使用 rspec 进行测试?

  12. 12

    如何知道在odoo中从哪个类调用了另一个类的方法

  13. 13

    是否在viewDidLayoutSubviews之后调用了一个方法?

  14. 14

    在另一个方法中调用另一个方法时出错

  15. 15

    使用main方法从另一个类调用一个类

  16. 16

    如何启动一个Activity并使用另一个类调用该类的方法

  17. 17

    如何使用 Mockito 验证在测试期间调用了 SUT 的另一个公共方法

  18. 18

    如何从另一个类中迅速调用另一个方法?

  19. 19

    通过调用另一个方法退出方法

  20. 20

    从另一个JNI方法调用JNI方法

  21. 21

    从另一个impl方法调用impl方法

  22. 22

    调用与另一个方法同名的对象的方法

  23. 23

    通过调用另一个方法退出方法

  24. 24

    从另一个测试方法调用测试方法

  25. 25

    在调用另一个方法时调用一个方法

  26. 26

    JUnit调用一个方法并调用另一个方法将返回nullPointerException

  27. 27

    检查使用 CMockery 测试的函数是否调用另一个特定函数

  28. 28

    检查方法是否是rspec中另一个方法的别名

  29. 29

    检查另一个方法的结果是否为if语句的方法

热门标签

归档