Logo
Section 1 / 8

属性思维导论

了解本章将要讲解的内容。

导入

属性思维导论

了解本章将要讲解的内容。

在上一章中,我们介绍了基本属性的特性,包括其语法以及内置的生成器。我们通过实践 biggest(List) 函数,确保其行为正确。现在,我们应该对属性的形态和阅读方式有了较好的理解,但可能仍不太敢独立编写属性。编写属性的经验至关重要,经过持续练习,这个过程会逐渐变得自然。不过,为了本课程的目的,我们将尝试加快这一学习进程。

正如我们在前一章所观察到的,编写高质量的属性具有挑战性,所需投入的精力远超编写常规测试。在本章中,我们将介绍一些技巧,帮助大家从传统的测试思维过渡到自然地使用属性进行测试。

我们将分享几个实用的技巧,帮助我们在复杂情况下写出足够好的属性。这些技巧包括:

  1. 建模
  2. 将示例测试泛化为属性
  3. 寻找不变性
  4. 对称属性
...
编写属性的方法

首先,我们会尝试对代码进行建模,从而避免大量复杂的思考过程。当建模不可行时,我们将尝试从传统的示例测试中提炼出通用属性,以明确我们期望背后的规则。另一种方法是寻找不变性,从而从简单的属性逐步构建出完整的测试套件。最后,对于某些特定问题,我们还将利用对称属性作为一种简便的“捷径”。

让我们开始吧。

编写属性

建模