Комбинаторное тестирование с огурцом - PullRequest
5 голосов
/ 03 мая 2011

У меня есть сценарий, который имеет две разные переменные.Одна переменная имеет около 20 различных значений, а другая - 3.

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

В настоящее время я просто записываю это вручную (они являются целыми числами в примере, но не в моем тесте):

Scenario Outline: Test my stuff
Given first var is <var_a>
And second var is <var_b>
When I do stuff
Then good stuff should happen

Examples:
| var_a | var_b |
| 1     | 1     |
| 1     | 2     |
| 1     | 3     |
| 2     | 1     |
| 2     | 2     |
etc...

Вопрос: Есть ли способ выполнить это, когда каждая комбинацияне должен быть выписан?Переменные будут меняться по размеру и содержанию позже, и я бы предпочел иметь единую структуру данных для работы.

Ответы [ 3 ]

1 голос
/ 11 мая 2011
Scenario: Test my stuff
Given first var combinations is @var_a_combos
Given second var combinations is @var_b_combos
When I run every combination
Then good stuff should happen
  • @var_a_combos и @var_b_combos являются перечисляемыми объектами, которые содержат различные возможности для этого типа.
  • When I run every combination будет перебирать обе переменные и проверять каждую отдельную комбинацию.Вместо использования утверждения вместо этого создается переменная @results (String), в которой будут перечислены все сбои и необходимые данные отладки.
  • Then good stuff should happen запустит код @results.should eql "", чтобы определить, выполняется ли проверкарегистр пройден / не выполнен.

Цель использования строковой переменной для хранения результатов (вместо утверждения) состоит в том, чтобы гарантировать, что тестирование не будет остановлено при обнаружении первого сбоя.

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

Если кто-то отправит дополнительные ответы, я рассмотрю их и изменю принятый ответ, если считаю, что он лучше.

0 голосов
/ 03 мая 2011

Поскольку тесты предназначены для виджета пользовательского интерфейса, и вы пытаетесь проверить его на уровне модулей, вам следует проверить QUnit (или другую среду модульного тестирования javascript, но это мое личное предпочтение). Вы можете даже запускать тесты QUnit через огурец, как в Сортировка тестов с огурцом и капибарой

0 голосов
/ 03 мая 2011

Вы уверены, что вам действительно нужно протестировать каждую комбинацию? Не могли бы вы объяснить контекст этой проблемы?

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

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