Если в примерах слишком много столбцов, каждая строка будет слишком длинной для чтения. - PullRequest
2 голосов
/ 14 мая 2019

Если в примерах слишком много столбцов , каждая строка будет слишком длинной для чтения!

Feature:

  Background:

  Scenario Outline:
    * match '<msg>' == <prefix> + ',' + '<end>'
    Examples:
      | prefix | end   | msg         |
      | hello  | mike  | hello,mike  |
      | hello  | jerry | hello,jerry |

Может ли это быть так:

Feature:

  Background:
    Examples:
    | prefix |
    | hello  |

  Scenario Outline:
    * match '<msg>' == <prefix> + ',' + '<end>'
    Examples:
      | end   | msg         |
      | mike  | hello,mike  |
      | jerry | hello,jerry |

Я хочу разделить примеры нанесколько частей , или установить базовые примеры перед Outline. Что мне делать?

1 Ответ

1 голос
/ 14 мая 2019

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

  1. Как вы и просили, мы можем определить Examples: таблицы до Scenario Outline:, используя таблицу в каратэ,
Feature: my feature
  Background: BG
    * table myExample
      | prefix | end   | msg         |
      | 'hello'  | 'mike'  | 'hello,mike'  |
      | 'hello'  | 'jerry' | 'hello,jerry' |

  Scenario Outline: SOW
    * match '<msg>' == '<prefix>' + ',' + '<end>'
    Examples:
    | myExample |

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

2.каратэ видит все эти table, Examples: как массив JSON

как правило, ваш пример выше будет представлен как

[
  {
    "prefix": "hello",
    "end": "mike",
    "msg": "hello,mike"
  },
  {
    "prefix": "hello",
    "end": "jerry",
    "msg": "hello,jerry"
  }
]

, поэтому каратэ позволяет вам определять эти Examples также из JSON или csv форматов, используя динамическую схему набросков карате

если вы чувствуете, что примеры слишком велики для размещения в вашем файле функций, сохраните его в файле csv и прочитайте его в Examples

Feature: my feature
  Background: BG
    * def myExample = read("myExample.csv")

  Scenario Outline: SOW
    * match '<msg>' == '<prefix>' + ',' + '<end>'
    Examples:
    | myExample |

То же самое относится и к JSON, предоставляя данные в виде массива JSON.

...