Условное применение тегов в цикле RSpec - PullRequest
0 голосов
/ 13 апреля 2019

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

Я мог бы скопировать / вставить весь файл, но это очень не элегантно.

Тест начинается следующим образом:

[ "item1_name", "item2_name" ].each do |item|
  describe "Test Run on #{ item }" do

Возможно ли это?Нижеследующее, очевидно, не сработает, но описывает то, на что я надеюсь:

например:

[ "item1_name", "item2_name" ].each do |item|
  if item == 'item1_name'
    describe "Test Run on #{ item }", :tag do
  else
    describe "Test Run on #{ item }", do
  end

  before :all do
    ...
  end

  ...
  expectations
  ...
end

1 Ответ

1 голос
/ 13 апреля 2019

Вы можете сделать следующее, чтобы условно добавить аргументы для описания:

tags_for_items = {
  'item1_name' => [:tag],
  'item2_name' => [],
}

tags_for_items.each do |item, tags|

  describe "Test Run on #{item}", *tags do

    before :all do
      ...
    end

    ...
    expectations
    ...

  end

end
...