Pregunta

Aquí está mi situación.

Antes de que mis pruebas se ejecutan, en el beforesuite, me instancias de un grupo de "Medio ambiente" Estos objetos se crean basan en mi archivo de configuración del entorno. Es mis pruebas de que realmente se usan estos objetos del entorno. El problema es cómo puedo pasar a las pruebas.

Su primer impulso podría ser el uso de un proveedor de datos, que pasará a los objetos correctos para la prueba. El problema es que el proveedor de datos tendrá que saber cómo hacer referencia a los objetos correctos y luego pasarlas. Tal como está ahora los objetos de entorno solo pueden ser referidos por su nombre (cadena -> objeto)

Mi otra opción es pasar el método de ensayo de una cadena que se refiere a los objetos correctos. Pero esto tiene el mismo problema que el anterior.

Estas dos opciones de crear un montón de dependencias y problemas. También tengo que hacer un montón de suposiciones sobre el tipo de la clave se refiere a.

La mayor parte de este problema se deriva del hecho de que abusar de TestNG. Lo que realmente necesito es mi propio controlador que puede crear instancias de mi objeto de prueba al pasar los objetos de entorno apropiadas.

Yo estaba buscando en la interfaz TestRunner de TestNG, pero no estoy seguro de si esto iba a funcionar.

Cualquier y toda la ayuda apreciada. Eric

¿Fue útil?

Solución

¿Por qué no utilizar una mezcla de @Factory y @DataProvider?

La fábrica estará a cargo de la creación de sus casos de prueba y los pasa los parámetros correctos: Ninguno de cuerdas (en cuyo caso el proveedor de datos puede entonces convertir estas cadenas en objetos) o directamente los objetos, en cuyo caso sus pruebas pueden utilizar estos valores directamente.

No dude en enviar un código si esto no ayuda a solucionar su problema.

- Cedric

Otros consejos

Yo tenía una situación similar y terminó usando propiedades de Java en su lugar.

Puede utilizar la propiedad en el código como esto y pasar en las variables de la JVM con el -Dmyproperty.value = hola. Lo utilicé para cosas como ruta del entorno, la URL del servicio, la cantidad de tiempo de espera, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top