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