![]() |
1
28
斯波克是关于 表现力 和 清晰 . 静止的 是一个Java关键字,仅显示类的内部(该字段对于所有实例都相同) @共享 是一个Spock特性,它告诉读者这个变量对于所有特性方法都是相同的。这是一个专门用于单元测试的指令,使读者更清楚地了解单元测试。 对于主要的斯波克街区来说也是如此。如果你仔细想想,他们并没有真正改变代码上的任何内容。
两个单元测试在技术上做的完全相同。然而,第二个更清楚地表明了意图。这个 什么时候: 和 那么: 除了澄清代码的意图之外,标签实际上对代码没有任何作用。 综上所述, @共享 使测试更具可读性。(另请参见 @问题 , @标题 它们存在的目的相同) |
![]() |
2
11
与JUnit相反,您必须声明字段变量 静止的 并在中为其赋值
因此,每个测试套件(而不是每个方法)只初始化一次,在Spock中,您可以使用实例字段变量并用
考虑以下示例:
运行SubclassSpec将提供以下输出:
虽然无法解释打印顺序,但这是由于AST。 |
![]() |
3
3
作为一种更详尽的方法,这里有一个输出的示例测试:
让我惊讶的是,类中的变量
|
|
4
1
静态字段只能用于常量。否则,共享字段更可取,因为它们与共享相关的语义定义更明确。 |
![]() |
switch201 · 如何使特征方法具有条件 7 年前 |
![]() |
shinjw · 将数据表与交互相结合 7 年前 |
![]() |
Mark · 将geb登录规范重构到模块,导致“未初始化”错误 7 年前 |
![]() |
Luca · 弹簧@自动连线对象为空 8 年前 |
![]() |
Dee · 在Spock中模拟超级#方法() 8 年前 |
![]() |
Arthur · 分离斯波克。一个规范中每个案例的DbUnit内容 9 年前 |