Recientemente descubrimos un problema específico de la configuración regional en nuestra aplicación y, aunque fue fácil de solucionar (una vez que descubrimos lo que estaba sucediendo), el equipo en el que estoy pensando está pensando en las prácticas de pruebas unitarias al respecto.
Nos gustaría detectar estos problemas antes, idealmente antes de que sean descubiertos por un cliente, y queremos protegernos de reintroducir errores locales específicos en el futuro, pero duplicar cada prueba unitaria en al menos otra cultura parece ser una gran cantidad de gastos generales.
¿Cómo o cómo abordaría las pruebas de unidades de múltiples ubicaciones?
unit-testing
localization
Adam Lear
fuente
fuente
Respuestas:
Generalmente no necesitará duplicar cada prueba unitaria. Debe identificar lo que realmente depende de la configuración regional (la buena lista de verificación está aquí ). Muchas cosas relacionadas con la internacionalización están sujetas al mayor nivel de prueba que la prueba unitaria.
Si está tratando con los datos de cadena que pueden venir en diferentes codificaciones, entonces puede utilizar "pruebas basadas en datos", es decir, pasar datos en diferentes codificaciones al mismo método de prueba. Para Java, TestNG es el más adecuado para esto.
Otro posible problema es el formato y análisis de fecha / hora. La mayoría de los usos locales: para separar elementos de tiempo, pero hay quienes usan puntos y los brasileños usan hm y s (12h15m30s). Esto también puede ser utilizado por los datos pasados en diferentes configuraciones regionales; no es necesario que los pruebe a todos.
Y la prueba de GUI con configuraciones regionales de derecha a izquierda generalmente no es un tema de prueba de unidad.
La conclusión es que necesita identificar qué datos en sus pruebas unitarias son específicos de la localidad y utilizar pruebas basadas en datos (proveedores de datos) para proporcionar estos datos a sus pruebas.
fuente
Aquí hay algunas sugerencias:
Siempre desarrolle en una máquina con configuraciones locales diferentes de su público objetivo principal. Le ayudará a encontrar errores relacionados con las fechas, la moneda y todos los problemas de formato numérico muy rápidamente. Haga lo mismo con su servidor de compilación, póngalo en Brasil o Vietnam (no físicamente, solo la configuración).
Use acentos y caracteres especiales en el título de su prueba, cadenas, etc. en las pruebas de su unidad. El problema de internacionalización más común que obtengo con el software que uso (no los que desarrollo) es con é y è o incluso ç en francés. Póngalos en cada cadena que use en sus pruebas. Usa una palabra común que usas todo el tiempo como
brèç©
No olvides usar acentos y gráficos especiales en las rutas también. ¡Visual Studio.NET en sí todavía tiene muchos problemas con eso! Debe acceder a crear dichos directorios y leer / escribir desde ellos en sus pruebas.
Si usa Visual Studio .NET, en las propiedades del proyecto, en Análisis de código , habilite Reglas de globalización . Los problemas más comunes generarán una advertencia en la compilación.
Contrata a un extranjero en tu equipo.
fuente