unit-testing - Arrange, Act, Assert 模式中的 Arrange 和 Act 有什么区别?

标签 unit-testing testing arrange-act-assert

我不太明白单元测试中模式的安排部分和行为部分之间的区别。 Arrange ONLY 是否意味着对象的创建?为什么我们首先要将 Arrange 与 Act 部分分开,以及决定某物是否属于 Act 而不是 Arrange 部分的标准是什么?对我来说似乎一切都属于 Arrange 部分,因为我们为断言“安排测试”,不是吗?

最佳答案

单元测试测试程序中的单个“Act”,通常是对对象实例的单个方法调用。 Arrange, Act, Assert 将单元测试组织为三个部分:Act 之前、期间和之后。

  • Arrange 部分包括但不包括感兴趣的方法调用的所有内容。在 Arrange 部分,我们设置了我们希望世界(我们调用方法的对象、它与之交互的其他对象等)在我们调用方法时所处的状态。

  • Act 是我们正在测试的方法的调用。

  • 并且(完整地说),断言是测试的其余部分,我们断言该法案对我们预期的世界产生了影响。

因此,我们不是“为断言安排测试”,而是为行动安排世界。在 Arrange 部分,我们做一些我们已经知道其效果的事情。 Arrange 部分调用的每个方法都应该在别处进行单元测试。在法案中,我们做了一些我们还不知道其效果的事情;这就是测试的实际内容。 (在测试驱动开发中,我们可能还没有编写方法,或者将其添加到实现中以通过此特定测试。)

关于unit-testing - Arrange, Act, Assert 模式中的 Arrange 和 Act 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31892754/

相关文章:

visual-studio-2008 - Visual Studio 2008 - 使用 Web 配置设置进行单元测试

Django:在测试期间从 STATIC_ROOT 读取

c# - 使用 C# 进行自动化 Flash 测试

c# - 单元测试自动实现的属性是否有值(value)

rhino-mocks - 如何使用AAA语法执行AssertWasCalled但忽略参数

unit-testing - 测试后端 api 端点是否被视为单元测试?

wpf - 如何模拟 DragEventArgs

c - 将测试数据解析成C程序

python - 在 python 中测试数据生成框架?

c# - 单元测试 AAA 模式中的数据提取