软件测试模型 — Arrange-Act-Assert模式(AAA模式)

1、AAA模型介绍

Arrange-Act-Assert模式(AAA模式)是一种编写优良测试用例的模式,可以帮助您编写更好的单元测试和功能测试。

AAA模式很强大,因为它很简单。通过保持测试简短、简洁和重点突出,可以进行干净的测试。更容易编写和更容易调试的测试!

您可以将测试分为四个步骤:

  • Arrange:测试准备,测试执行所需要的一切准备。
  • Act:测试执行,用来执行测试的唯一行为,这通常采用function/method调用的形式。
  • Assert:测试断言,检查测试结果和逾期结果是否一致。
  • Cleanup:测试清理,保证其它测试不受到影响。

2、AAA模式的好处

Arrange、Act 和 Assert 模式可以帮助您编写更好的单元测试。这是编写更好的单元测试的一种简单而有效的方法。通过将测试分解为这三个不同的阶段,您可以更轻松地确定需要测试的内容并确保您的测试是全面的。

使用 AAA 模式进行单元测试有如下几个好处:

(1)有助于保持测试简洁和集中

通过遵循严格的结构,当测试更小并且只测试单个事物时,它们更容易编写。测试应该只“断言”一个结果。通过以这种方式限制测试,一切都变得更易于管理。

(2)测试更容易阅读和理解

遵循 Arrange Act Assert 模式意味着测试不仅证明该功能有效,还展示了该功能或组件如何工作。由于它们更简洁,它们应该表明通过改变一个论点或环境因素,它们以特定的方式执行。这应该由测试记录,提供函数的演练及其作用。

(3)调试可以更容易

这种模式可以使调试更容易,因为每个测试都是一个独立的单元。应该没有外部因素来改变测试的执行方式。最重要的是,由于每个测试都专注于一个单一的结果,因此可以更容易地看到究竟是什么坏了。有人认为大量小测试不值得花时间,但以这种方式测试实用功能可能是有益的。团队成员可能会随着时间的推移而发生变化,并在无意中意外破坏功能。单元测试可以捕捉到这个小错误。

3、AAA模式的简单示例

这是使用pytest框架编写的 Python 绝对值函数abs()的基本单元测试用例:

def test_abs():
    # Arrange
    a = -5

    # Act
    answer = abs(a)

    # Assert
    assert answer == 5


reference:

Anatomy of a test — pytest documentation

Arrange-Act-Assert: A Pattern for Writing Good Tests | Automation Panda

https://robertmarshall.dev/blog/arrange-act-and-assert-pattern-the-three-as-of-unit-testing/


版权声明:本文为panc_guizaijianchi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。