#partial-eq #api-testing

已废弃 timeless-partialeq

[已废弃] PartialEq,但忽略时间戳,适用于API测试

4 个版本

0.2.1 2024年6月20日
0.2.0 2024年5月9日
0.1.1 2024年5月7日
0.1.0 2024年5月6日

#34 in #api-testing

AGPL-3.0-or-later

15KB
60

已废弃 -> 新CRATE: SkippablePartialEq


lib.rs:

在PartialEq自定义实现中忽略以特定后缀结尾的字段。

示例

use timeless_partialeq::TimelessPartialEq;
use chrono::{DateTime, TimeZone, Utc};

#[derive(Debug, TimelessPartialEq)]
#[exclude_suffix(at, date)]
pub struct Post {
    pub id: i64,
    pub content: String,
    pub author: i32,
    pub creation_date: DateTime<Utc>,
    pub updated_at: Option<DateTime<Utc>>,
}

assert_eq!(
    Post {
        id: 1,
        content: "test".to_string(),
        author: 1,
        creation_date: Utc.timestamp_millis_opt(1715017040672).unwrap(),
        updated_at: Some(Utc.timestamp_millis_opt(1715017020672).unwrap()),
    },
    Post {
        id: 1,
        content: "test".to_string(),
        author: 1,
        creation_date: Utc::now(),
        updated_at: Some(Utc::now()),
    }
) // true

关于此crate

此crate是为了解决一个非常具体的问题:即使时间戳不同,也能断言两个对象的相等性。它还使我能够研究过程宏。然而,在我发布后仅一天,我就意识到它不仅可以用于时间戳。

我不会承诺快速迭代这个,但它确实在我的计划中,要扩大crate的范围。

依赖关系

~265–710KB
~17K SLoC