Шаги AutoWiring с помощью Spring Cucumber Serenity - PullRequest
0 голосов
/ 29 августа 2018

Я с треском проваливаюсь, чтобы автоматически подключить некоторые шаги. Чтобы проиллюстрировать это, я сделал небольшой пример проекта на github

.

https://github.com/lpicquet/serenity-cucumber-spring

Я пытаюсь автоматически связать шаги, чтобы я мог обмениваться данными между ними, но тест в настоящее время не проходит. Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 29 августа 2018

Проблема в том, что вы используете другой Runner. Обычно люди используют SpringRunner.class, который обрабатывает возможность создавать контекст теста и т. Д.

Создайте новый SpringRunner и инициализируйте TestContextManager, чтобы обеспечить функциональность тестирования Spring для стандартных тестов JUnit 4.

Чтобы использовать другой бегунок вместе с пружинными функциями, вы можете использовать комбинацию ClassRule и Rule

@ClassRule
public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();

@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();

SpringClassRule - это пользовательский JUnit TestRule, который поддерживает функции уровня класса Spring TestContext Framework в стандартных тестах JUnit с помощью TestContextManager и связанных вспомогательных классов и аннотаций.

В отличие от SpringJUnit4ClassRunner, основанная на правилах поддержка JUnit в Spring имеет то преимущество, что она независима от любого Runner и поэтому может быть объединена с существующими альтернативными бегунами, такими как JUnit Parameterized или сторонними бегунами, такими как MockitoJUnitRunner.

Для достижения той же функциональности, что и SpringJUnit4ClassRunner, однако, SpringClassRule должен быть объединен с SpringMethodRule, поскольку SpringClassRule поддерживает только функции уровня класса SpringJUnit4ClassRunner.

Без этого нет возможности Autowire в ваших зависимых классах и т. Д.

Я добавил PR в ваш проект с прохождением тестов.

...