#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

#188 in Date and time

Download history 158/week @ 2024-07-11 122/week @ 2024-07-18 27/week @ 2024-07-25 7/week @ 2024-08-01 14/week @ 2024-08-29 60/week @ 2024-09-05 84/week @ 2024-09-12 63/week @ 2024-09-19 98/week @ 2024-09-26 88/week @ 2024-10-03 34/week @ 2024-10-10 28/week @ 2024-10-17 183/week @ 2024-10-24

343 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