web-dev-qa-db-fra.com

Flutter / Dart attendre quelques secondes lors des tests unitaires

J'écris une application de minuterie. Lors des tests unitaires, comment puis-je attendre quelques secondes pour tester si ma minuterie fonctionne correctement?

// I want something like this.
test("Testing timer", () {
    int startTime = timer.seconds;
    timer.start();

    // do something to wait for 2 seconds

    expect(timer.seconds, startTime - 2);

});
8
Ragas

Vous pouvez utiliser awaitFuture.delayed (...) `:

test("Testing timer", () async {
    int startTime = timer.seconds;
    timer.start();

    // do something to wait for 2 seconds
    await Future.delayed(const Duration(seconds: 2), (){});

    expect(timer.seconds, startTime - 2);

});

Une alternative serait fake_async avec https://pub.dartlang.org/packages/clock pour pouvoir manipuler librement le temps utilisé dans le test.

12
Günter Zöchbauer