问题标签 [unified-diff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
19 浏览

python - 统一差异是否足以用于测试目的的字符串比较?

如果我们要实施测试来比较程序的一些内联输出和预期输出,我们希望强制执行不同级别的“严格性”:

  • 完全符合
  • 修剪后完全匹配
  • 包括出现次数(即预期输出中的所有行都出现在实际输出中,顺序相同)

如果不需要统一的差异,所有这些级别的严格性都可以轻松实现。

但是,是否可以使用现有的统一差异生成器库(Python difflib),结合某些预处理和后解释技术来判断输出是否满足上面给出的第三个标准?

例如,如果预期输出和实际输出如下:

预期的:

实际的:

如果我们只期望发生,则将其评估为匹配。

差异将是这样的:

我想到的一种方法是检查我们是否只能在差异中看到添加内容。这在提供的示例中是有效的,因为“测试”行仅出现在实际输出中。但我不知道这是否适用于其他情况。

作为后续,如果这不起作用,那么在仅使用 Python 检查是否出现的同时生成统一差异的方法是什么?