Скажем, у меня есть сценарий функционального тестирования в example1.feature это шаг
«У меня есть что-то в базе данных»
В моей папке шагов есть реализация этого шага в файле example1.php.
Теперь скажите, что я хочу использовать тот же шаг в example2.feature. Я знаю, что если я не осуществлю этот шаг в example2.php, он будет автоматически использовать реализацию из example1.php.
Но рекомендуется ли это? реализовать шаги из одного теста в классе другого теста? Кажется, что это сломало бы изоляцию тестовой группы …
Или я должен скопировать / вставить код в example2.php чтобы у каждого теста была своя реализация шагов? Кажется, очень сухой и обслуживающий кошмар …
Или есть другой рекомендуемый способ справиться с такой ситуацией, может быть, все классы шагов расширяют общий класс, который определяет шаги, которые будут использоваться в нескольких тестах?
Возможно ли иметь две реализации для одного и того же шага? В других вариантах огурца вы поставите неоднозначную ошибку шага. Инструмент не знает, какую реализацию использовать.
Если это возможно с двумя реализациями, то я не буду беспокоиться о том, какой файл реализуется шаг. Я бы больше беспокоился о том, чтобы иметь одинаковую реализацию в двух местах.
Причина, по которой я больше беспокоюсь о двух реализациях, заключается в том, что нет хорошего способа узнать, что они не отклоняются во время обслуживания. Если они отклоняются, то вы попадаете в ситуацию, когда один и тот же шаг в корнишоне означает две разные вещи. Это было бы плохо.
Других решений пока нет …