Избегание избыточных / повторных сценариев в rspec с перекрывающимися ролями - PullRequest
0 голосов
/ 14 сентября 2018

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

Допустим, у этой функции есть сценарии a, b, c, d, e, f, g, и у нас есть role1 и role2. роль 1 может сделать а, б, е, е, ж роль 2 может делать с, д, е, е, г

Я изначально разработал спецификацию следующим образом

shared example "e"
  scenarios
shared example "f"
  scenarios
shared example "g"
  scenarios
context "as role1"
  it_behaves_like "e"
  it_behaves_like "f"
  it_behaves_like "g"
  scenario "a"
  scenario "b"
context "as role2
  it_behaves_like "e"
  it_behaves_like "f"
  it_behaves_like "g"
  scenarios for "c"
  scenarios for "d"

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

Есть ли у кого-нибудь предложения по поводу того, что здесь можно считать «лучшей практикой»?

...