gpt4 book ai didi

c# - 在断言之前或之后模拟 Verify/VerifyAll

转载 作者:行者123 更新时间:2023-11-30 20:11:15 26 4
gpt4 key购买 nike

我在编写测试时已经习惯了遵循代码模式

public void TestMethod_Condition_Output()
{
//Arrange----------------
Mock<x> temp = new Mock<x>();
temp.setup.......

//Act--------------------
classinstance.TestMethod()

//Assert------------------

temp.VerifyAll();
Assert.AreNotEqual(.....)
}

我习惯于在执行断言之前执行 VerifyAll()。但最近在一些在线示例中,我看到有人先做 Assertion,然后再做 VerifyAll(如果有的话)。我确实觉得我的方法是正确的方法,除非我遗漏了什么。

如果我遗漏了什么,请提醒我。

最佳答案

在我看来,验证应该在断言之后。我希望断言接近被测方法的调用,因为它们正在记录方法的作用。模拟调用的验证详细说明了该类如何使用它的依赖项。这与方法本身直接相关不太重要。

从某种意义上说,对依赖项的模拟变成了对实际测试本身的包装。这使测试更容易理解(对我来说,无论如何,YMMV)。然后我的测试遵循这种模式:

安排

  • 模拟
  • 设置对依赖项的期望
  • 设置预期结果
  • 创建被测类

行动

  • 调用被测方法

断言

  • 断言实际结果与预期结果相符
  • 验证是否达到预期

我不知道我会对此迂腐,但这是对我来说最有意义的顺序。

关于c# - 在断言之前或之后模拟 Verify/VerifyAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4020021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com