230 个版本 (稳定)
1.0.177 | 2024年8月5日 |
---|---|
1.0.176 | 2023年7月26日 |
1.0.164 | 2023年6月8日 |
1.0.159 | 2023年3月28日 |
0.8.0 | 2016年7月28日 |
#11 in 测试
329,564 每月下载量
用于 499 个 Crates (454 个直接使用)
92KB
2K SLoC
serde_test ──
此 Crate 提供了一种方便简洁的方式来编写 Serialize
和 Deserialize
实现的单元测试。
一个值的 Serialize
实现,可以通过在序列化该值过程中进行的 Serializer
调用的序列来描述,因此 serde_test
提供了一个大致对应于 Serializer
方法调用的 Token
抽象。提供了 assert_ser_tokens
函数来测试一个值是否序列化到特定的方法调用序列,assert_de_tokens
函数来测试一个值是否可以从特定的方法调用序列反序列化,以及 assert_tokens
函数来测试双向操作。还有用于测试预期失败条件的函数。
以下是从 linked-hash-map
Crate 的一个示例。
use linked_hash_map::LinkedHashMap;
use serde_test::{assert_tokens, Token};
#[test]
fn test_ser_de_empty() {
let map = LinkedHashMap::<char, u32>::new();
assert_tokens(
&map,
&[
Token::Map { len: Some(0) },
Token::MapEnd,
],
);
}
#[test]
fn test_ser_de() {
let mut map = LinkedHashMap::new();
map.insert('b', 20);
map.insert('a', 10);
map.insert('c', 30);
assert_tokens(
&map,
&[
Token::Map { len: Some(3) },
Token::Char('b'),
Token::I32(20),
Token::Char('a'),
Token::I32(10),
Token::Char('c'),
Token::I32(30),
Token::MapEnd,
],
);
}
许可证
在您的选择下,根据 Apache License, Version 2.0 或 MIT 许可证 许可。除非您明确说明,否则根据Apache-2.0许可协议定义的,您有意提交用于包含在此包中的任何贡献,均应双重许可,如上所述,不附加任何其他条款或条件。
依赖项
~110–345KB