Тест флаттера о том, что из блока не получено никакого состояния - PullRequest
1 голос
/ 27 марта 2020

У меня есть случай, когда выполняется какое-то условие, тогда блок c вообще не дает состояния (игнорируя все события). Как я могу проверить, что при добавлении нового события в blo c?

я не использую состояние flutter_blo c: ^ 3.1.0 и . bloc_test: ^ 3.1.0

      'test ignore all event after AlarmEvent()',
      () async {
        bloc.add(AlarmEvent());
        bloc.add(GetRandomPostEvent());

        await emitsExactly(
          bloc,
          [
            SplashScreenLoadingState(),
            ShowAlarmState(),
          ],
        );
      },
    );

Поскольку функция еще не реализована, я ожидаю, что тест не пройден, но на самом деле он успешно выполнен. Есть идеи?

1 Ответ

0 голосов
/ 27 марта 2020

Вы можете сделать тест специально для этого условия, чтобы ничего не отправлялось, и подписаться на свой блок c, а затем вызвать fail() в подписке, если блок сгенерирован, так что вы знаете, что они только в том случае, если тест прошел успешно. если бы fail() не вызывали. Это также должен быть синхронный вызов.

Что-то вроде:

var subscription = myBlocStream.listen((_) { 
  fail('Should not emit'); 
}); 
myBloc.doSomething();
subscription.cancel();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...