1个不稳定版本
| 0.0.0 | 2020年11月12日 |
|---|
#17 在 #leaf
6KB
语言
Veritas中的概念深受谷歌truth库的启发。
叶节点
叶节点对应关系
叶节点对应关系确定一个值T是否以某种方式与一个Pattern对应。
主要有两种对应关系
- 精确:
T精确对应于Pattern。例如,Equal和Matches是精确对应关系的示例。 - 容差:
T在某个容差范围内与Pattern对应。CloseTo是容差对应关系的示例。
事实
Fact是一个键值对,可以作为不一致解释的一部分呈现给用户。
有几个内置的事实,旨在帮助实现对应关系以向支持的报告者呈现有用的错误消息。
- 基本:单个字符串。例如,当
Present对应关系失败时,它会产生一个表示“不存在”的基本事实。 - 键值:描述事实的静态键以及用具体
T描述事实的值 - 可比较字符串:
T的字符串表示和预期T的字符串表示,应呈现为丰富的差异
叶节点不匹配
如果一个Correspondence不满足,它会产生一个Mismatch。一个Mismatch包含多个Fact,共同描述不匹配的原因。
Mismatch M2可以依赖于另一个Mismatch M1,这意味着除非M1被修复,否则M2没有意义。常规报告者可能会仅呈现不带依赖关系的差异,而详细报告者可能会呈现所有差异。
复合差异
字符串
与许多其他期望系统不同,Veritas中字符串的不匹配被建模为复合差异。每个关于String的Fact都指定了一个指向String的Range。
字符串有许多特殊类型的Fact
- 范围基本:类似于基本事实,但应用于字符串的特定范围
- 范围键值:类似于键值事实,但应用于字符串的特定范围
关于 String 值的对应关系可以使用 Diffable String 事实来呈现期望值和实际值之间的差异。
关于一个 String 的所有 Fact 集合将创建源字符串中所有问题范围的集合。
列表
记录
映射
集合
本地化
自定义对应关系
灵感来源
此库受到 [rspec][rspec]、truth 以及许多其他语言的测试框架的启发,这些框架专注于生成良好的错误输出。
依赖项
~4MB
~74K SLoC