Передача параметров объекта для методов TestNG?

StackOverflow https://stackoverflow.com/questions/2232295

  •  19-09-2019
  •  | 
  •  

Вопрос

Вот моя ситуация.

Перед запуском моих тестов в beforesuite я создаю экземпляр группы "объектов среды", Которые создаются на основе моего файла конфигурации среды.Именно мои тесты на самом деле будут использовать эти объекты среды.Проблема в том, как я могу передать их на тесты.

Вашим первым побуждением может быть использование поставщика данных, который передаст правильные объекты для тестирования.Проблема в том, что поставщик данных должен знать, как ссылаться на правильные объекты, а затем передавать их.В нынешнем виде на объекты среды можно ссылаться только по имени (string -> object).

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

Оба этих варианта создают множество зависимостей и проблем.Я также должен сделать множество предположений о типе, к которому относится ключ.

Большая часть этой проблемы проистекает из того факта, что я злоупотребляю TestNG.Что мне действительно нужно, так это мой собственный контроллер, который может создавать экземпляр моего тестового объекта при передаче соответствующих объектов среды.

Я изучал интерфейс TestRunner от testng, но я не уверен, сработает ли это.

Любая помощь приветствуется.Эрик

Это было полезно?

Решение

Почему бы не использовать сочетание @Factory и @dataProvider?

Фабрика будет отвечать за создание ваших тестовых экземпляров и передачу им правильных параметров:либо строки (в этом случае поставщик данных затем может превратить эти строки в объекты), либо непосредственно объекты, и в этом случае ваши тесты могут использовать эти значения напрямую.

Не стесняйтесь публиковать какой-нибудь код, если это не поможет вам решить вашу проблему.

-- Седрик

Другие советы

У меня была похожая ситуация, и вместо этого я использовал свойства Java.

Вы можете использовать это свойство в своем коде так и передайте переменные в вашу JVM с помощью -Dmyproperty.value=hello.Я использовал его для таких вещей, как путь к среде, URL-адрес службы, время ожидания и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top