Я новичок в 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);
}
Что нужно изменить, чтобы я мог написать тест в обычном стиле упорядочить-действовать-утверждать (то есть переместить game.newGame()
над вызовом expect(...)
)?