Skip to content

Use the clock package to help us create tests #169

@hbock-42

Description

@hbock-42

I find it might be interesting to use the 'clock' package from the Dart team to help us test our application.
They have a very interesting feature where you wrap your code inside a withClock, and you can set the time returned by Clock.now -> so if you use clock.now() instead of DateTime.now inside TZDatime, it is easy to write tests.

withClock(Clock.fixed(DateTime.parse('2000-04-24 13:00:00.000000')), () {
        final DateTime nowClock = clock.now();
        final nowParis = TZDateTime.now(getLocation('Europe/Paris'));
        print('TZLocatedNowWithClockOverride:${TZDateTime.from(nowClock, getLocation('Europe/Paris'))}');
        print('paris:$nowParis');
}

If you are in Paris, it currently, returns:

nowclock:2000-04-24 13:00:00.000
TZLocatedNowWithClockOverride:2000-04-24 13:00:00.000+0200
paris:2023-04-24 13:14:47.899249+0200

After the change, it would return:

nowclock:2000-04-24 13:00:00.000
TZLocatedNowWithClockOverride:2000-04-24 13:00:00.000+0200
paris:2000-04-24 13:00:00.000+0200

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions