Clone this repo:
  1. 8dfee80 Update README.md (#70) by Moritz · 4 months ago master
  2. 7956d60 Bump actions/checkout from 4.1.7 to 4.2.0 in the github-actions group (#69) by dependabot[bot] · 5 months ago
  3. 6e43768 update lints (#68) by Kevin Moore · 7 months ago
  4. b303a4b blast_repo fixes (#67) by Kevin Moore · 7 months ago
  5. ad428ea Bump the github-actions group with 2 updates (#66) by dependabot[bot] · 8 months ago

[!IMPORTANT]
This repo has moved to https://github.com/dart-lang/tools/tree/main/pkgs/clock

Dart CI pub package package publisher

This package provides a Clock class which encapsulates the notion of the “current time” and provides easy access to points relative to the current time. Different Clocks can have a different notion of the current time, and the default top-level clock's notion can be swapped out to reliably test timing-dependent code.

For example, you can use clock in your libraries like this:

// run_with_timing.dart
import 'package:clock/clock.dart';

/// Runs [callback] and prints how long it took.
T runWithTiming<T>(T Function() callback) {
  var stopwatch = clock.stopwatch()..start();
  var result = callback();
  print('It took ${stopwatch.elapsed}!');
  return result;
}

...and then test your code using the fake_async package, which automatically overrides the current clock:

// run_with_timing_test.dart
import 'run_with_timing.dart';

import 'package:fake_async/fake_async.dart';
import 'package:test/test.dart';

void main() {
  test('runWithTiming() prints the elapsed time', () {
    FakeAsync().run((async) {
      expect(() {
        runWithTiming(() {
          async.elapse(Duration(seconds: 10));
        });
      }, prints('It took 0:00:10.000000!'));
    });
  });
}