El proyecto de Asset compute define un patrón para crear y ejecutar fácilmente pruebas de los trabajadores de la Asset compute.
Las pruebas de los trabajadores de asset compute se dividen en grupos de pruebas y, dentro de cada grupo de pruebas, en uno o más casos de prueba que afirman una condición para probar.
La estructura de las pruebas en un proyecto de Asset compute es la siguiente:
/actions/<worker-name>/index.js
...
/test/
asset-compute/
<worker-name>/ <--- Test suite for the worker, must match the yaml key for this worker in manifest.yml
<test-case-1>/ <--- Specific test case
file.jpg <--- Input file (ie. `source.path` or `source.url`)
params.json <--- Parameters (ie. `rendition.instructions`)
rendition.png <--- Expected output file (ie. `rendition.path`)
<test-case-2>/ <--- Another specific test case for this worker
...
Cada conversión de prueba puede tener los siguientes archivos:
file.<extension>
.link
)rendition.<extension>
params.json
validate
diff
mandomock-<host-name>.json
Este caso de prueba confirma la entrada parametrizada (params.json
) para el archivo de entrada (file.jpg
) genera la representación PNG esperada (rendition.png
).
En primer lugar, elimine el simple-worker
caso de pruebas en /test/asset-compute/simple-worker
como no es válido, como el trabajador ya no copia el origen en la representación.
Cree una nueva carpeta de caso de prueba en /test/asset-compute/worker/success-parameterized
para probar una ejecución correcta del trabajador que genera una representación PNG.
En el success-parameterized
carpeta, añadir la prueba archivo de entrada para este caso de prueba y asígnele un nombre file.jpg
.
En el success-parameterized
carpeta, agregue un nuevo archivo llamado params.json
que define los parámetros de entrada del trabajador:
{
"size": "400",
"contrast": "0.25",
"brightness": "-0.50"
}
Son las mismas claves o valores pasados a la variable Definición del perfil de Asset compute de la herramienta de desarrollo, menos el worker
clave.
Añada el esperado archivo de representación a este caso de prueba y asígnele un nombre rendition.png
. Este archivo representa la salida esperada del trabajador para la entrada dada file.jpg
.
Desde la línea de comandos, ejecute las pruebas en la raíz del proyecto ejecutando aio app test
Este caso de prueba prueba prueba para garantizar que el trabajador emita el error correspondiente cuando la variable contrast
El parámetro se ha establecido en un valor no válido.
Cree una nueva carpeta de caso de prueba en /test/asset-compute/worker/error-contrast
para probar una ejecución errónea del trabajador debido a un contrast
valor del parámetro.
En el error-contrast
carpeta, añadir la prueba archivo de entrada para este caso de prueba y asígnele un nombre file.jpg
. El contenido de este archivo no es material para esta prueba, solo necesita existir para pasar la comprobación de "Fuente dañada", para llegar a la rendition.instructions
comprobaciones de validez, que este caso de prueba valida.
En el error-contrast
carpeta, agregue un nuevo archivo llamado params.json
que define los parámetros de entrada del trabajador con el contenido:
{
"contrast": "10",
"errorReason": "rendition_instructions_error"
}
contrast
parámetros para 10
, un valor no válido, ya que el contraste debe estar entre -1 y 1, para producir un RenditionInstructionsError
.errorReason
clave para el "motivo" asociado con el error esperado. Este parámetro de contraste no válido genera el error personalizado, RenditionInstructionsError
, establezca la variable errorReason
por el motivo de este error, orendition_instructions_error
para afirmar que se ha lanzado.Dado que no se debe generar ninguna representación durante una ejecución errónea, no es necesario rendition.<extension>
es necesario el archivo.
Ejecute el grupo de pruebas desde la raíz del proyecto ejecutando el comando aio app test
Los casos de prueba finales están disponibles en Github en: