plugins – Redacción de casos de prueba para un complemento de WordPress que tiene traducciones

Pregunta:

Cual es mi objetivo?

Espero escribir casos de prueba para las traducciones disponibles de un complemento de WordPress.

Mi acercamiento:

Configuré WordPress usando VVV y mi paquete de pruebas incluye PHPUnit y WP-CLI .

Para probar (afirmar) las traducciones, estoy verificando si el archivo .mo del idioma existe o no.

/**
 * Test the translations.
 */
public function test_translations() {
    $this->assertFileExists( $this->object->path . 'lang/domain-name-de_DE.mo' );
    $this->assertFileExists( $this->object->path . 'lang/domain-name-lt_LT.mo' );
    $this->assertFileExists( $this->object->path . 'lang/domain-name-nl_NL.mo' );
}

¿Dónde estoy atrapado?

¿Es este el enfoque correcto para probar las translations de un complemento de WordPress? Si no es así, sugiera alternativas.

Respuesta:

Si todo lo que desea probar es que los archivos de traducción existen, entonces este es probablemente el enfoque más simple, ya que probablemente ya estará usando PHPUnit para ejecutar pruebas de unidad / integración en el código del complemento.

Sin embargo, comprobar si los archivos existen no te dice mucho. No le dice si esos idiomas están realmente traducidos por completo, o incluso si esos archivos serán cargados correctamente por WordPress.

Entonces, la pregunta que debe hacerse es: "¿Por qué estoy probando esto?" Si solo desea asegurarse de no omitir accidentalmente un archivo de traducción, entonces sus pruebas deberían hacer lo que necesita. Si realmente quiere asegurarse de tener traducciones completas para cada idioma, y ​​que estas realmente funcionen, esa es una historia completamente diferente.

Prueba de carga de traducción

Para verificar si WordPress puede cargar correctamente cada archivo de traducción, probablemente podría crear una prueba PHPUnit que cargue los archivos usando load_plugin_textdomain() , y verificando que devuelva true , lo que indicaría que el textdomain podría cargarse correctamente. Probablemente necesitará conectarse al filtro plugin_locale para verificar cada configuración regional que se envía con su complemento.

Prueba de integridad

Sin embargo, eso todavía no le diría cuántas de las cadenas se tradujeron realmente a ese idioma, cuántas son borrosas, etc. Si desea verificar que cada traducción esté completa al menos un xx%, probablemente desee usar una herramienta distinta a PHPUnit para eso.

Prueba de apariencia

También puede ir más allá y verificar que las cadenas de cada traducción realmente aparezcan correctamente en la interfaz de usuario del complemento. A veces, una cadena puede ser mucho más larga en una traducción que en el idioma original, y esto puede hacer que se desborde del área asignada. Para verificar esto, necesitaría usar algo como las pruebas de aceptación de Codeception .

Conclusión

Entonces, en conclusión, si las pruebas que tiene son el enfoque adecuado para usted depende de lo que desee probar. Personalmente, no tengo ninguna prueba para las traducciones de mis complementos, aunque la última parte sobre la verificación de la interfaz de usuario me ha intrigado. El simple hecho de comprobar que existen las traducciones, como está haciendo ahora, no me parece que sea de gran beneficio. Es una verificación que es tan buena como su lista de archivos de traducción que está buscando. Y en cierto sentido, en realidad no prueba nada, solo se asegura de que esté allí. Eso podría realizarse en un script de compilación en lugar de PHPUnit. Comprobación de que las traducciones en realidad se pueden cargar con WordPress proporciona el beneficio de la OMI, ya que en realidad prueba que no están dañados. Y, por supuesto, prueba que existen al mismo tiempo. Así que probablemente ampliaría tus pruebas para comprobar eso también.

Editar

En una nota relacionada, también podría considerar probar cualquier error de ortografía en su POT principal (y también en las traducciones, supongo). Es fácil que estos pasen desapercibidos. Probablemente hay scripts de shell disponibles que podrían hacer esto.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım