Dart-lang异步流测试

时间:2019-06-08 07:08:39

标签: dart dart-async

我是Dart的新手,并且正在对我在网上找到的示例hangman游戏进行一些重构,以帮助学习语言和测试库。我正在努力使用emits流匹配器按“排列-动作-断言”顺序编写测试。

这是我当前的测试,该测试处于“自动安排”状态:

void main() {
  test('new game has no guessed letters', () {
    var word = List.of(['WORD']);
    var notifier = Notifier();
    var game = HangmanGame(word, notifier);

    expect(notifier.onChange, emits('____'));

    game.newGame();
  });
}

此示例中Notifier类的重要部分:

class Notifier implements EventPublisher, EventSubscriber {
  StreamController<String> _onChange = StreamController<String>.broadcast();

  Stream<String> get onChange => _onChange.stream;

  onChangeEvent(String event) => _onChange.add(event);
}

newGame()方法将这一切联系在一起:

  void newGame() {
    _wordList.shuffle();
    _wordToGuess = _wordList.first.split('');
    _wrongGuesses = 0;
    _lettersGuessed.clear();
    _notifier.onChangeEvent(wordForDisplay);
  }

需要进行哪些更改,以便我可以以通常的“ act-act-assert”风格编写测试(即将game.newGame()移到对expect(...)的调用上方)?

0 个答案:

没有答案