#testing #time #mocking #chrono #traits #interface #utc-clock

clockabilly

Trait wrapper around chrono for testing

2 releases

0.1.1 Jul 17, 2024
0.1.0 Jul 17, 2024

#194 in Date and time

Download history 57/week @ 2024-07-20 25/week @ 2024-07-27 2/week @ 2024-08-03 60/week @ 2024-08-31 22/week @ 2024-09-07 80/week @ 2024-09-14 85/week @ 2024-09-21 109/week @ 2024-09-28 61/week @ 2024-10-05 30/week @ 2024-10-12 84/week @ 2024-10-19 137/week @ 2024-10-26 81/week @ 2024-11-02

339 downloads per month
Used in 7 crates

MIT license

28KB
58 lines

Clockabilly

an AI-generated bird with gears and a clock in its belly

A really simple trait wrapper for chrono that lets you mock out time in tests.

Usage

Any place you want to mock time, you need to pass in a Clockable interface. In your "real" code you can use a UtcClock, and in your testing code you can use a MockUtcClock (you need to include the mock feature for this). See the basic example for an example:

> cargo run --example basic --features=mock
   Compiling clockabilly v0.0.0 (/build/src/clockabilly)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.09s
     Running `target/debug/examples/basic`
2024-07-17T17:41:02.369894602Z
1970-01-01T00:00:10Z

For "simplicity", this re-exports all of chrono.

Dependencies

~1MB
~18K SLoC