#factory #fixture #test

factori

受 FactoryBot 启发的 Rust 工厂库。🤖

7 个版本 (2 个稳定版本)

1.1.0 2020年8月14日
1.0.0 2020年1月15日
0.1.1 2020年1月8日
0.1.0 2019年5月18日
0.0.3 2018年6月27日

#299测试

Download history 1373/week @ 2024-04-07 1684/week @ 2024-04-14 1389/week @ 2024-04-21 831/week @ 2024-04-28 931/week @ 2024-05-05 1158/week @ 2024-05-12 1177/week @ 2024-05-19 669/week @ 2024-05-26 786/week @ 2024-06-02 1033/week @ 2024-06-09 1342/week @ 2024-06-16 1511/week @ 2024-06-23 1709/week @ 2024-06-30 1079/week @ 2024-07-07 1005/week @ 2024-07-14 849/week @ 2024-07-21

每月下载量 4,647

MIT 许可证

14KB
64

Factori 构建状态 Crates.io Docs.rs

FactoryBot 启发的 Rust 测试工厂库。🤖 🦀

Factori 使您在测试中轻松实例化测试对象/固定值,同时提供定义它们如何实例化的直观语法。

Factori 支持 Rust 稳定版 >=1.30。

文档

请参阅 API 文档

示例

Factori 提供了两个宏:用于定义类型的工厂宏 factori!,以及用于实例化的 create!

#[macro_use]
extern crate factori;

pub struct Vehicle {
    number_wheels: u8,
    electric: bool,
}

factori!(Vehicle, {
    default {
        number_wheels = 4,
        electric = false,
    }

    mixin bike {
        number_wheels = 2,
    }
});

fn main() {
    let default = create!(Vehicle);
    assert_eq!(default.number_wheels, 4);
    assert_eq!(default.electric, false);

    // Its type is Vehicle, nothing fancy:
    let vehicle: Vehicle = default;

    let three_wheels = create!(Vehicle, number_wheels: 3);
    assert_eq!(three_wheels.number_wheels, 3);

    let electric_bike = create!(Vehicle, :bike, electric: true);
    assert_eq!(electric_bike.number_wheels, 2);
    assert_eq!(electric_bike.electric, true);
}

更多示例可在 tests/ 目录中找到。

测试

运行

cargo test

许可证

MIT

依赖项

~1.5MB
~35K SLoC