Как лучше всего использовать последовательные тесты? - PullRequest
0 голосов
/ 26 февраля 2019

Я знаю, что в автоматизации тестирования мы должны избегать последовательных тестовых случаев . Так что порядок запуска тестовых случаев не важен.

Я верю в некоторыеслучаи последовательных тестов неизбежны:

1. Рассмотрите сценарий, в котором пользователь должен предпринять некоторые предыдущие шаги для достижения конечной цели.Например, пользователь должен войти в систему, чтобы он мог совершить покупку.

   Given User is logged in
   When  User adds an item into its basket
   And   User Complete his purchase
   Then  He receives an Email

Таким образом, в приведенном выше сценарии каждая часть (Given, When, And или Then) представляет собой отдельные тестовые случаи.Но все же порядок тестовых сценариев имеет решающее значение.

2. Также команда Junit предоставляет метод, называемый @FixMethodOrder(MethodSorters.NAME_ASCENDING), для такого использования, но я не уверен, когда нам разрешат использовать это?

Итак, как вы пишете независимые тесты в конце 2-го конца тестирования?

Ответы [ 3 ]

0 голосов
/ 07 марта 2019

Инфраструктура тестирования пользовательского интерфейса espresso позволяет реализовать такие сценарии основного путешествия пользователя.

Если вы хотите выполнить модульные тесты, то вы должны установить ожидаемые предварительные условия в начале каждого.

0 голосов
/ 08 марта 2019

Выражение «избегать последовательных тестовых случаев» применимо только к модульным тестам.И именно здесь светит Junit и mockito.В этих случаях нас беспокоит только правильность единицы .Мы не заботимся о том, что другие модули выйдут из строя или пройдут, или что-то в этом роде, мы будем издеваться над поведением других модулей, чтобы мы могли сосредоточиться на тестировании точного поведения текущего теста.

Описанный вами случай не попадает в этокатегория.В вашем случае вам нужен набор интеграционных тестов, так как вам нужно тестировать сквозной поток.Для тестирования интеграции можно использовать следующие инструменты.

  • Огурцы
  • Тест интерфейса пользователя Soap
  • Безмятежность
  • и т. Д.
0 голосов
/ 27 февраля 2019

Тесты должны быть атомарными, в том смысле, что они НЕ должны полагаться на статус, созданный предыдущим тестом.Вот почему следует избегать последовательных тестов.В случае сбоя какой-либо части последовательности остальные тесты не выполняются, поэтому не имеет смысла разделять их (это может быть только один тест).

Если вам нужны предварительные условия для ваших тестов, вы можете включить их в: 1) перед всеми тестами, 2) в начале набора тестов, 3) перед вашим конкретным тестом, 4) внутри вашего конкретного теста.Независимо от того, где и когда это будет сделано, важно, чтобы вы предполагали, что все, что нужно для генерации этого статуса , работает так, как ожидается, поэтому вы просто сосредотачиваетесь на том, что тестируете.

Теперь, если вы хотите протестировать весь поток системы, я бы порекомендовал вам поместить это в один уникальный тест.В случае, если есть различия, то у вас будет несколько тестов.

Скажем, например, что вы хотите проверить D, но D нуждается в C, а затем C нуждается в B, и, наконец, B нуждается в A;одна из стратегий - создать тест, в котором вы будете выполнять A-> B-> C-> D.Другая стратегия заключается в создании нескольких тестов, в которых вы тестируете отдельные шаги: тест 1 выполняет A;тест 2 выполняет A-> B (но не волнует, в порядке ли A);тест 3 выполняет A-> B-> C (но не волнует, в порядке ли A и B);и так далее.Какую стратегию использовать, зависит от ваших целей и масштаба сценария.Лично я предпочитаю второй вариант для больших вещей и первый для простых / коротких.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...