#file-content #fixture #test #test-output

开发工具 expectorate

简单更新比较文件内容的库

9 个稳定版本

2.0.1 2021 年 3 月 25 日
1.1.0 2023 年 9 月 25 日
1.0.7 2023 年 4 月 17 日
1.0.6 2022 年 12 月 27 日
1.0.2 2020 年 11 月 14 日

#55 in 测试

Download history 7531/week @ 2024-04-23 6373/week @ 2024-04-30 7243/week @ 2024-05-07 9360/week @ 2024-05-14 5911/week @ 2024-05-21 5918/week @ 2024-05-28 4530/week @ 2024-06-04 5294/week @ 2024-06-11 7579/week @ 2024-06-18 7350/week @ 2024-06-25 5071/week @ 2024-07-02 7704/week @ 2024-07-09 5888/week @ 2024-07-16 6954/week @ 2024-07-23 7631/week @ 2024-07-30 9415/week @ 2024-08-06

31,397 个月下载量
用于 16 crates

Apache-2.0

96KB
135 代码行

Expectorate

这是一个用于验证保存在文件中的预期输出的小型库。当需要更新内容以匹配新结果时,它可以使更新内容变得容易。

验证输出

假设你有一个名为 compose() 的函数,它生成一个字符串,你有一个名为 lyrics.txt 的文件,其中包含预期的输出。你可以这样比较实际输出

    let actual: &str = compose();
    assert_content("lyrics.txt", actual);

如果不匹配,你会看到这样的输出

白色表示内容匹配。红色表示文件中缺少内容。绿色表示文件中添加了内容。

如果我们想接受 compose() 的更改,我们可以简单地运行 EXPECTORATE=overwrite。假设 lyrics.txt 已检查入库,git diff 将显示类似以下内容

diff --git a/examples/lyrics.txt b/examples/lyrics.txt
index e4104c1..ea6beaf 100644
--- a/examples/lyrics.txt
+++ b/examples/lyrics.txt
@@ -1,5 +1,2 @@
-No one hits like Gaston
-Matches wits like Gaston
-In a spitting match nobody spits like Gaston
+In a testing match nobody tests like Gaston
 I'm especially good at expectorating
-Ten points for Gaston

谓词(特性:谓词)

Expectorate 可用于你可能使用 predicates crate 的地方。如果你正在使用 predicates::path::eq_file,你可以改用 expectorate::eq_fileexpectorate::eq_file_or_panic。像上面一样填充或更新指定的文件。

依赖项

~1.1–8.5MB
~59K SLoC