Как передавать информацию между Steps в Jbehave?


(Patzifist) #1

Всем привет.
Собственно проблема:
Как передать возвращаемый объект между степами в Jbehave?

Стек технологий:
Java + TestNG + стандартные тесты.

И сейчас добавляется Jbehave.
Во всех примера, которые я встречал, степы лежат в одном классе или имеют в сигнатуре void.

Пример:
Given Steps отдельный класс
When Steps отдельный класс
Нужно между ними передать объект, который создается в Given.

Как я понял в Фукидиде используется Storage объектов, но эта идея не подходит, так как степов много, и кто угодно может сломать, просто изменив тип объекта. То есть об этой проблеме все узнают только Runtime.
Может кто встречал другие идеи, как обойти эту проблему?
Или может уже есть готовые решения, связанные с Inject, то есть нет проблем прикрутить Guice или Spring, но совсем не хочется изобретать велосипед.


(Kolesnik Nickolay) #2

Используйте контекст. Проще говоря - это некий класс, который может глобально хранить нужные вам значения. Вот один из примеров использования:

И собственно, сам класс контекста:

Можете сделать некий статический класс, который будет хранить значения, видимые не только в одном классе, но и в пределах всего решения