2个不稳定版本
使用旧的Rust 2015
0.2.0 | 2018年3月21日 |
---|---|
0.1.0 | 2018年3月19日 |
#2676 in Rust模式
260KB
387 行
snaptest
简单直观的快照测试(灵感来自 jest)。
文档(包括此README)正在制作中。如有关于使用方面的问题,请随时提交问题。
特性
- 任何实现了
Debug
的类型都可以从测试中返回。 - 与
failure
的一级集成。 - 快照存储是线程安全的,因此您的测试可以并行运行。
- 当快照测试失败时,会打印出美观的差异。
- 使用单个小型二进制文件存储快照。
待办事项
安装
首先,将 snaptest
添加到您的 Cargo.toml
文件的依赖关系部分
[dependencies]
snaptest = "0.1"
接下来,将以下代码片段添加到您的crate的入口点(lib.rs
或 main.rs
)
#[macro_use]
extern crate snaptest;
使用方法
在您想与snaptest一起使用的类型上派生 Debug
use std::str::FromStr;
#[derive(Debug)]
pub struct User {
connection: Connection,
name: String,
}
#[derive(Debug)]
pub enum Connection {
Online,
Offline,
}
impl FromStr for User {
// ...
}
现在,在 User
结构的测试模块中
snaptest!{
fn parse_user() -> Result<User, Error> {
"Zak:online".parse()
}
}
下次运行测试时,快照将添加到本地的 .snapfile
中,以便与未来的测试结果进行比较。如果您得到的结果与快照不匹配,测试将失败,差异将被打印到控制台。
许可证
根据您的选择,许可以下之一
- Apache许可证第2版(《LICENSE-APACHE》或 https://apache.ac.cn/licenses/LICENSE-2.0》)
- MIT许可证(《LICENSE-MIT》或 http://opensource.org/licenses/MIT》)
。
贡献
除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证定义,均应如上所述双重许可,不附加任何额外条款或条件。
依赖关系
~0.5–1MB
~16K SLoC