Tech / Dev

Generador de nombre de test

Generá nombres de test descriptivos en Given/When/Then o estilo 'should...'. Compatibles con cualquier framework.

Instantáneo🔒En tu navegadorSin registro
En vivo

El nombre del test es la documentación

Cuando un test falla en CI tres meses después, el nombre es lo único que ves en el reporte antes de abrir el código. "should reject login with invalid password" comunica intención, contexto y resultado esperado en una línea. "test1" o "testLogin" no comunican nada.

El patrón "should..."

Usado en Mocha, Jest, Vitest, RSpec. Estructura: describe("<Subject>", () => { it("should <expected behavior> when <condition>", ...) }). El verbo en tercera persona enfatiza que estás describiendo el comportamiento del sistema, no la acción del programador.

Given/When/Then (BDD)

Patrón que viene de Cucumber y Gherkin. Given describe el estado inicial, When la acción ejecutada, Then el resultado esperado. Funciona muy bien para tests de integración y e2e: "Given an empty cart, when the user adds a product, then the cart shows 1 item".

El patrón JUnit

En Java, la convención clásica es methodName_stateUnderTest_expectedBehavior. Ejemplo: login_invalidPassword_returns401. Permite ordenar tests alfabéticamente y agruparlos visualmente. En Kotlin se usa back-tick para nombres con espacios: fun \`returns 401 when password is invalid\`().

Snake case en Python

Pytest fomenta nombres descriptivos en snake_case: def test_login_returns_401_when_password_is_invalid():. Largo pero claro. Combina bien con parametrize para múltiples casos.

Qué evitar

  • Nombres genéricos: "testLogin", "test1", "happyPath".
  • Nombres con detalles de implementación: "shouldCallSpyWithObject" (rompe al refactorizar).
  • Negaciones dobles: "should not fail when not invalid".
  • Nombres en TODO MAYÚSCULAS o camelCaseSinEspacios largos.

Estructura: AAA

Arrange-Act-Assert es el patrón clásico para el cuerpo del test. Arrange: prepará el estado y los mocks. Act: ejecutá la acción que se prueba. Assert: verificá el resultado. Un test debería tener un solo Act; si ves dos, probablemente son dos tests.

Tests parametrizados

Si querés cubrir múltiples inputs, no copies el test cinco veces. Usá test.each en Jest, parametrize en pytest, theory en xUnit. Los nombres se generan automáticamente desde los parámetros, lo que mantiene legibilidad sin duplicar código.

Preguntas frecuentes

¿Cómo nombrar?

Describí comportamiento + condición. should return 404 when user is missing.

¿GWT?

Given/When/Then: estado, acción, resultado. Útil en BDD.

¿Idioma?

Inglés es estándar; español también vale para equipos hispanos.

¿Te sirvió este generador?