Automatización de la prueba del conector
El asistente de prueba del conector proporciona una interfaz de programación a la CLI. Todas las opciones proporcionadas en la CLI se pueden suministrar también a través de la interfaz de programación. Esto es útil para convertir una ejecución interactiva mediante la CLI en una prueba de regresión automatizada.
El módulo NPM ptc-flow-test-helper proporciona las API para automatizar casos de prueba de integración del conector. Estas API se pueden utilizar junto con cualquier marco de pruebas de node.js como, por ejemplo, mocha, para automatizar los casos de prueba del conector.
En este módulo NPM se proporcionan tres API:
• JSONUtils: permite proporcionar utilidades JSON que se emplean como condiciones en el caso de prueba.
ConnectorTestHelper
Se proporcionan las API para probar los siguientes elementos de conector:
• CredsAPI: utilidad para leer y almacenar la autenticación de conector.
ActionAPI
La información definida en un conjunto de prueba mediante este método se debe transmitir al probar un caso de prueba individual.
Método setTestInfo: este método permite devolver información definida por setTestInfo. Este método define la información de nivel de conjunto de prueba.
Firma: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
}
En la siguiente tabla se explica cada parámetro del ejemplo anterior:
Parámetros | Descripción |
---|
name | Permite definir la acción que los casos de prueba van a probar. |
connector | Permite definir el conector que los casos de prueba van a probar. |
version | Permite definir la versión de la acción que se va a probar. |
access_token | Si un conector utiliza el mecanismo de autenticación de OAuth, proporcione el nombre del objeto de OAuth almacenado en el fichero creds.json. |
connection | Si un conector utiliza el mecanismo de autenticación de conexión, proporcione el nombre del objeto de conexión almacenado en el fichero creds.json. |
skipSchemaValidation | Se define en true para omitir la validación de la entrada o salida de la acción con el esquema de entrada o salida. |
logLevel | Defina el nivel de registro que ActionAPI debe utilizar. |
ActionAPI utiliza la información definida en este método al invocar el elemento de acción.
Método getTestInfo: este método devuelve la información definida por setTestInfo.
Firma: getTestInfo()
Tipo de devolución (información de objeto)
Método test
Este método ejecuta el elemento de acción proporcionado y devuelve el resultado devuelto por la acción del conector.
Signature: test(Object input [optional], Object options [optional])
Objeto de promesa de tipo de devolución
◦ input [optional]: permite especificar un objeto de entrada aceptado por el elemento de acción que está de acuerdo con el esquema JSON de la entrada de acción.
◦ options [optional]: permite especificar el objeto en el que se incluyen algunas o todas las propiedades definidas en la información del objeto. El valor de las propiedades de este objeto de opciones sustituye a las propiedades definidas en el objeto de información del nivel de conjunto de prueba, por el método setTestInfo.
Por ejemplo, se define la información de nivel de conjunto de prueba para action1 de conexión. Se puede utilizar este objeto de opciones para invocar un método de prueba que ejecuta action2 del conector en lugar de action1 pasando la propiedad name: action2. Esto es útil si se utiliza action2 para crear o borrar datos de prueba necesarios o creados por el conjunto de prueba para action1.
ConnectionAPI
La información definida en un conjunto de prueba mediante este método se debe transmitir al probar un caso de prueba individual.
Método setTestInfo: este método permite devolver información definida por setTestInfo. Este método define la información de nivel de conjunto de prueba.
Firma: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
skipSchemaValidation: <boolean>,
logLevel: <string>
En la siguiente tabla se explica cada parámetro del ejemplo anterior:
Parámetros | Descripción |
---|
name | Permite definir la conexión que los casos de prueba van a probar. |
connector | Permite definir el conector que los casos de prueba van a probar. |
version | Permite definir la versión de la conexión que se va a probar. |
skipSchemaValidation | Se define en verdadero para omitir la validación de la entrada o salida de la acción con el esquema de entrada o salida. |
logLevel | Defina el nivel de registro que ConnectionAPI debe utilizar. |
ConnectionAPI utiliza la información definida en este método al invocar el elemento de conexión.
Método getTestInfo: se devuelve la información definida por setTestInfo.
Firma: getTestInfo(): tipo de devolución (información de objeto)
Método test
El método ejecuta el elemento de conexión proporcionado y devuelve el resultado devuelto por el elemento de conexión del conector.
Signature: test(Object input [optional], Object options [optional])
Objeto de promesa de tipo de devolución
◦ input [optional]: permite especificar el objeto de entrada aceptado por el elemento de conexión que está de acuerdo con el esquema JSON de entrada de conexión.
◦ options [optional]: permite especificar el objeto en el que se incluyen algunas o todas las propiedades definidas en la información del objeto. El valor de las propiedades de este objeto de opciones sustituye a las propiedades definidas en el objeto de información de un nivel de conjunto de prueba, por el método setTestInfo.
Por ejemplo, se define la información de nivel de conjunto de prueba para connection1 de conexión. Se puede utilizar este objeto de opción para invocar un método de prueba que ejecuta connection2 del conector en lugar de connection1 pasando la propiedad name: connection2. Esto es útil si se utiliza connection2 para crear o borrar datos de prueba necesarios o creados por el conjunto de prueba para connection1.
LookupAPI
Método setTestInfo: este método permite devolver información definida por setTestInfo. Este método define la información de nivel de conjunto de prueba.
Firma:setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
connection: <string>,
access_token: <string>
logLevel: <string>
}
En la siguiente tabla se explica cada parámetro del ejemplo anterior:
Parámetros | Descripción |
---|
name | Permite definir la búsqueda que los casos de prueba van a probar. |
connector | Permite definir el conector que los casos de prueba van a probar. |
version | Permite definir la versión de la búsqueda que se va a probar. |
connection | Si un conector utiliza el mecanismo de autenticación de conexión, proporcione el nombre del objeto de conexión almacenado en el fichero creds.json. |
access token | Si un conector utiliza el mecanismo de autenticación de OAuth, proporcione el nombre del objeto de OAuth almacenado en el fichero creds.json. |
skipSchemaValidation | Se define en verdadero para omitir la validación de la entrada o salida de la acción con el esquema de entrada o salida. |
logLevel | Defina el nivel de registro que LookupAPI debe utilizar. |
Método test
El método ejecuta el elemento de búsqueda proporcionado y devuelve el resultado devuelto por el elemento de búsqueda del conector.
Signature: test(String method, Object input [optional], Object options [optional])
Objeto de promesa de tipo de devolución
◦ method: permite especificar el nombre del método de búsqueda que se debe probar.
◦ input [optional]: permite especificar el objeto de entrada aceptado por el método de búsqueda.
◦ options [optional]: permite especificar el objeto en el que se incluyen algunas o todas las propiedades definidas en la información del objeto. El valor de las propiedades de este objeto de opciones sustituye a las propiedades definidas en el objeto de información del nivel de conjunto de prueba, por el método setTestInfo.
Además, se pueden proporcionar las siguientes propiedades con este objeto.
searchById | Permite definir el ID que se utilizará para la búsqueda. |
searchByValue | Permite definir el valor que se utilizará para la búsqueda. |
filter | Permite definir el filtro para buscar elementos. |
Por ejemplo, si desea ejecutar el método de búsqueda proporcionando el valor SearchById, utilice el objeto options para proporcionar esta información.
TriggerAPI
La información definida en el conjunto de prueba mediante este método se debe pasar al probar un caso de prueba individual.
Método setTestInfo: se devuelve la información definida por setTestInfo. Este método define la información de nivel de conjunto de prueba.
Firma: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
polling: <boolean>
}
En la siguiente tabla se explica cada parámetro del ejemplo anterior:
Parámetros | Descripción |
---|
name | Permite definir el activador que los casos de prueba van a probar. |
connector | Permite definir el conector que los casos de prueba van a probar. |
version | Permite definir la versión del activador que se va a probar. |
access_token | Si un conector utiliza el mecanismo de autenticación de OAuth, proporcione el nombre del objeto de OAuth almacenado en el fichero creds.json. |
connection | Si un conector utiliza el mecanismo de autenticación de conexión, proporcione el nombre del objeto de conexión almacenado en el fichero creds.json. |
skipSchemaValidation | Se define en verdadero para omitir la validación de la entrada o salida de la acción con el esquema de entrada o salida. |
polling | Se debe definir en verdadero si el tipo de activador es un activador de sondeo. |
logLevel | Defina el nivel de registro que TriggerAPI debe utilizar. |
TriggerAPI utiliza la información definida en este método al invocar el elemento de acción.
Método getTestInfo: se devuelve la información definida por setTestInfo.
Firma: getTestInfo(): tipo de devolución (información de objeto)
Método test
El método ejecuta el elemento de activador proporcionado y devuelve el resultado devuelto por el elemento de activador del conector.
Signature: test(String method, String event, Object input [optional], Object options [optional])
Tipo de devolución, objeto de promesa
◦ method: permite especificar el nombre del método de activador que se debe probar.
◦ event: permite especificar el evento de activador definido en el esquema de entrada del activador.
◦ input [optional]: permite especificar el objeto de entrada aceptado por el método de activador.
◦ options [optional]: permite especificar el objeto en el que se incluyen algunas o todas las propiedades definidas en la información del objeto. El valor de las propiedades de este objeto de opciones sustituye a las propiedades pertinentes definidas en el objeto de información del nivel de conjunto de prueba por el método setTestInfo.
Además, se pueden proporcionar las siguientes propiedades con este objeto para las pruebas del activador de sondeo.
interval | Permite definir el intervalo en segundos después del cual se debe activar. |
stopAfter | Permite definir el número máximo de llamadas al activador. |
meta | Permite definir el objeto de metadatos. |
unixTime | Sistema para describir un punto en el tiempo, definido como una aproximación del número de segundos. |
Por ejemplo, si desea definir unixTime durante las pruebas del activador de sondeo, utilice las opciones anteriores.
CredsAPI
Los métodos que se utilizan en este fichero son los siguientes:
• getConnectionById: se devuelven los detalles de conexión en función del nombre de objeto de conexión proporcionado.
Firma: getConnectionById(uid)
• getConnectionByIdWithHandle: se devuelven los detalles de conexión de un objeto de controlador.
Firma: getConnectionByIdWithHandle(uid)
• getOauthById: se devuelven los detalles de OAuth en función del nombre de objeto de OAuth proporcionado.
Firma: getOauthById(uid)
• getOauthByIdWithHandle: se devuelven los detalles de OAuth en un objeto de controlador.
Firma: getOauthByIdWithHandle()
• saveConnection: se guarda una conexión.
Firma: saveConnection()
• saveOauth: se guardan los detalles de OAuth en el fichero creds.json.
Firma: saveOauth()
API de ConnectorSyntaxTestHelper
Este método valida la sintaxis de los elementos de conector.
Se puede utilizar en la prueba de unidad, tal como se indica a continuación:
/* eslint-env mocha */
const ConnectorSyntaxTestHelperClass = require('ptc-flow-test-helper').ConnectorSyntaxTestHelper
const connector = require('../../index')
const ConnectorSyntaxTestHelper = new ConnectorSyntaxTestHelperClass(connector)
describe('usgeocoderConnectorSyntaxTest', ConnectorSyntaxTestHelper.tests())
API de JSONUtils
Biblioteca de condiciones JSON
compareJSONs (Object actualJSON, Object expectedJSON, Object ignoreDiff [optional]) returnType promise: método de condición para comparar objetos JSON, la promesa que devuelve se resuelve si ambos objetos JSON coinciden, en otro caso se rechaza la promesa con un error ignoreDiff = { keys : [matriz de campos que se deben omitir en la comparación]}
verifyArraySubset (Object actualJSONArray, Object expectedJSONArray, Object ignoreDiff [optional]) returnType promise
• Método de condición para comparar si actualJSONArray es un subconjunto de expectedJSONArray
• La promesa devuelta se resuelve si actualJSONArray es un subconjunto de expectedJSONArray, en otro caso se rechaza la promesa con un error
• ignoreDiff = { keys : [array of fields to be ignored from comparison]}