#serialization #serde #unit-testing #dev-dependencies

dev serde_test

用于测试 De/Serialize 实现的 Token 序列化和反序列化器

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 测试

Download history 73771/week @ 2024-05-02 73554/week @ 2024-05-09 92376/week @ 2024-05-16 80098/week @ 2024-05-23 90659/week @ 2024-05-30 80260/week @ 2024-06-06 82105/week @ 2024-06-13 84720/week @ 2024-06-20 76609/week @ 2024-06-27 72081/week @ 2024-07-04 87640/week @ 2024-07-11 88252/week @ 2024-07-18 85701/week @ 2024-07-25 76753/week @ 2024-08-01 76881/week @ 2024-08-08 72475/week @ 2024-08-15

329,564 每月下载量
用于 499 个 Crates (454 个直接使用)

MIT/Apache

92KB
2K SLoC

serde_test ── 构建状态 最新版本

此 Crate 提供了一种方便简洁的方式来编写 SerializeDeserialize 实现的单元测试。

一个值的 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.0MIT 许可证 许可。
除非您明确说明,否则根据Apache-2.0许可协议定义的,您有意提交用于包含在此包中的任何贡献,均应双重许可,如上所述,不附加任何其他条款或条件。

依赖项

~110–345KB