Testng: Добавить способ перехвата метода ввода параметра третьей стороной.

Созданный на 22 сент. 2016  ·  3Комментарии  ·  Источник: cbeust/testng

Из https://github.com/jmockit/jmockit1/issues/337

Он должен работать с поставщиком данных и без него.

@rliesenfeld Есть пожелания относительно будущего API?

@nitinverma открыт для участия в интеграции, поскольку он уже хорошо поработал над внедрением параметров.

data-provider injection

Самый полезный комментарий

Я думаю, что новая модель расширения JUnit 5 может стать хорошим источником вдохновения. Единственное, чего не хватает в JUnit 5, — это способ автоматической регистрации этих расширений сторонней библиотекой, при этом пользователям не нужно вручную добавлять аннотации «@ExtendWith» к своим тестовым классам.

TestNG уже имеет набор интерфейсов расширения (например, IExecutionListener, который реализует JMockit), но ни один из них не похож на интерфейс JUnit ParameterResolver. Я думаю, что что-то подобное можно было бы добавить.

Все 3 Комментарий

Я думаю, что новая модель расширения JUnit 5 может стать хорошим источником вдохновения. Единственное, чего не хватает в JUnit 5, — это способ автоматической регистрации этих расширений сторонней библиотекой, при этом пользователям не нужно вручную добавлять аннотации «@ExtendWith» к своим тестовым классам.

TestNG уже имеет набор интерфейсов расширения (например, IExecutionListener, который реализует JMockit), но ни один из них не похож на интерфейс JUnit ParameterResolver. Я думаю, что что-то подобное можно было бы добавить.

Я хотел бы предложить, чтобы мы думали не только о method argument injection , но и о других дополнениях/расширениях, которые могут быть доступны для среды тестирования.

Ниже приводится предварительная идея по общей поддержке/предоставлению интеграции:

  • Интеграция функций может быть введена.
  • Интеграция функций может быть объявлена ​​устаревшей.
  • Интеграция функций может быть отозвана.
  • Для интеграции функций могут потребоваться предварительные условия.
  • Необходимыми условиями для интеграции функций могут быть версии.
  • Предпосылками интеграции функций могут быть другие интеграции.
  • Один продукт может предоставлять несколько интеграций функций.
  • Интеграция продукта зависит не напрямую от интеграции других продуктов, а через интеграцию функций.
  • Пользователь должен иметь легкий доступ к списку активных интеграций.

Метафора:

TestNG — это материнский корабль, а другие продукты — это модули. Модули стыкуются с материнским кораблем и предлагают множество функций. Функции связываются или связываются с ожиданиями других функций (через тот же модуль или другой) или отклоняются по мере отзыва. После того, как муфты установлены на место, материнский корабль может включаться или отключаться для обеспечения надлежащего функционирования и корректировки курса.

Выше приведен лишь грубый набросок, который, надеюсь, будет дополнен обсуждением.

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

И в настоящее время слушатели — хороший способ для сторонних расширений.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги