ITADN
mitsuhiko/insta
mitsuhiko/insta · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

insta:一个用于 Rust 的快照测试库

Crates.io License Documentation VSCode Extension

简介

快照测试(有时也称为审批测试)是一种将值与参考值(即快照)进行断言的测试。这与 assert_eq! 允许你将值与参考值进行比较类似,但与简单的字符串断言不同,快照测试允许你对复杂值进行测试,并配备了用于审查变更的全面工具。

当你的参考值非常大或经常变化时,快照测试尤其有用。

示例

#[test]
fn test_hello_world() {
    insta::assert_debug_snapshot!(vec![1, 2, 3]);
}

好奇?有一个屏幕录制展示了整个工作流程:观看 insta 入门屏幕录制。 或者如果你不喜欢视频,请阅读 5 分钟入门

Insta 还支持内联快照,它们直接存储在你的源文件中 而不是单独的文件中。这是通过配套的 cargo-insta 工具实现的。

编辑器支持

对于查看 .snap 文件,有一个 vscode 扩展 可以对快照文件进行语法高亮、审查快照等。可以从 市场安装:在市场查看

jump to definition

差异比较

Insta 使用 similar 进行所有差异比较 操作。你可以独立于 insta 使用它。你可以使用 similar-asserts crate 来为标准的 assert_eq! 宏获取 内联差异,从而在常规比较中实现类似 insta 的差异 效果:

use similar_asserts::assert_eq;

fn main() {
    let reference = vec![1, 2, 3, 4];
    assert_eq!(reference, (0..4).collect::<Vec<_>>());
}

赞助

如果您喜欢该项目并觉得它有用,您可以成为 赞助者

许可证和链接