#fact #output #assertions #leaf #composable #pretty #string

veritas

一个具有美观输出的可组合断言库

1个不稳定版本

0.0.0 2020年11月12日

#17#leaf

Apache-2.0

6KB

语言

Veritas中的概念深受谷歌truth库的启发。

叶节点

叶节点对应关系

叶节点对应关系确定一个值T是否以某种方式与一个Pattern对应。

主要有两种对应关系

  • 精确:T精确对应于Pattern。例如,EqualMatches是精确对应关系的示例。
  • 容差:T在某个容差范围内与Pattern对应。CloseTo是容差对应关系的示例。

事实

Fact是一个键值对,可以作为不一致解释的一部分呈现给用户。

有几个内置的事实,旨在帮助实现对应关系以向支持的报告者呈现有用的错误消息。

  • 基本:单个字符串。例如,当Present对应关系失败时,它会产生一个表示“不存在”的基本事实。
  • 键值:描述事实的静态键以及用具体T描述事实的值
  • 可比较字符串:T的字符串表示和预期T的字符串表示,应呈现为丰富的差异

叶节点不匹配

如果一个Correspondence不满足,它会产生一个Mismatch。一个Mismatch包含多个Fact,共同描述不匹配的原因。

Mismatch M2可以依赖于另一个Mismatch M1,这意味着除非M1被修复,否则M2没有意义。常规报告者可能会仅呈现不带依赖关系的差异,而详细报告者可能会呈现所有差异。

复合差异

字符串

与许多其他期望系统不同,Veritas中字符串的不匹配被建模为复合差异。每个关于StringFact都指定了一个指向StringRange

字符串有许多特殊类型的Fact

  • 范围基本:类似于基本事实,但应用于字符串的特定范围
  • 范围键值:类似于键值事实,但应用于字符串的特定范围

关于 String 值的对应关系可以使用 Diffable String 事实来呈现期望值和实际值之间的差异。

关于一个 String 的所有 Fact 集合将创建源字符串中所有问题范围的集合。

列表

记录

映射

集合

本地化

自定义对应关系


灵感来源

此库受到 [rspec][rspec]、truth 以及许多其他语言的测试框架的启发,这些框架专注于生成良好的错误输出。

依赖项

~4MB
~74K SLoC