Flutter: тестирование исключений в тестах виджетов

Я создал этот фрагмент, используя BS4 и ваш код в качестве базы, и изменил его, чтобы показать переданные исходные данные.

SO snippet manager не разрешит iframe s со ссылками на сторонние ( т.е. ваши ссылки), поэтому я просто показываю строки, но по крайней мере вы можете увидеть один способ передачи данных в модальный.

$('#myModal').on('show.bs.modal', function(e) {
  $("div.modal-body p").text($(e.relatedTarget).data("ref"));

})
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.bundle.min.js"></script>

<li>
  <a class="big-open" data-toggle="modal" href="#myModal" data-ref="http://www.fundraising123.org/files/u16/bigstock-Test-word-on-white-keyboard-27134336.jpg">IMAGE TEST
    </a>
</li>
<li>
  <a class="big-open" data-toggle="modal" href="#myModal" data-ref="http://www.orimi.com/pdf-test.pdf">PDF TEST
    </a>
</li>

<div id="myModal" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header"><button class="close" type="button" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Event</h4>
      </div>
      <div class="modal-body">
        <p src="">Loading...</p>
      </div>
      <div class="modal-footer"><button class="btn btn-default" type="button" data-dismiss="modal">Close</button></div>
    </div>
  </div>
</div>

3
задан xpeldev 18 January 2019 в 22:05
поделиться

1 ответ

Чтобы отловить исключения, генерируемые в тесте флаттера, используйте WidgetTester.takeException . Это возвращает последнее исключение, пойманное фреймворком.

await tester.tap(find.byIcon(Icons.send));
expect(tester.takeException(), isInstanceOf<UnrecognizedTermException>());

Вам также не нужен throwsA сопоставитель, так как он не выбрасывается из метода.

0
ответ дан Jonah Williams 18 January 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: