Spock 的@Narrative 和@Title 注释

Spock's @Narrative and @Title annotations

Spock 提供 @Narrative@Title 注释,您可以使用它们来提供测试的 class 级描述,例如

@Narrative('description of spec')
@Title('title of spec')
class ExampleSpec extends Specification {

  // tests omitted
}

这两者有什么区别?换句话说,当它们似乎服务于相同的目的时,为什么我们需要它们?

这两个注释的目的纯粹是提供信息 - 而且它们的命名非常好。将规范视为电影 (:D)。电影有标题,可能有描述或评论。在这种特殊情况下 @Title 可能是 示例验证规范 @Narrative 此规范检查示例验证在各种输入数据下的工作方式 - 特别是格式错误. 现在,如果负责质量(或其他)的项目成员阅读此描述 he/she 可能会根据 he/she 阅读的描述指出缺少某些规范。老实说,除非真的需要,否则我不会过多关注这些注释。

更重要的是,此类描述可用于文档生成。

标题应该是一行(简短描述)

叙述应该是完整的段落(使用 Groovy multi-line 字符串)

它们主要用于业务分析师、项目经理可以阅读叙述文本的大型项目中e.t.c。

正如 Opal 所说,一旦某些报告工具实际使用它们,它们就会更有用。

更新: Spock reports 项目现在支持这些注释。