Флаттер / Дарт ждут несколько секунд в модульном тестировании - PullRequest
0 голосов
/ 08 января 2019

Я пишу приложение для таймера. В модульном тестировании, как мне ждать несколько секунд, чтобы проверить, правильно ли работает мой таймер?

// 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);

});

1 Ответ

0 голосов
/ 08 января 2019

Вы можете использовать await Future.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);

});

Альтернативой может быть fake_async с https://pub.dartlang.org/packages/clock, чтобы иметь возможность свободно манипулировать временем, использованным в тесте.

...