Methodsource

MethodSource

📌 Formas de referenciar métodos estáticos con @MethodSource en JUnit 5

✅ 1. Referencia dentro de la misma clase (método estático en la clase del test)

@MethodSource("nombreDelMetodo")
  • Uso: Cuando el método estático está en la misma clase del test.

  • Ejemplo:

    static Stream<Arguments> provideData() { ... }
    
    @ParameterizedTest
    @MethodSource("provideData")

✅ 2. Referencia en otra clase (método estático externo)

@MethodSource("paquete.Clase#metodo")
  • Sintaxis general: "paquete.Clase#metodo"

  • Uso: Cuando el método estático está en otra clase.

  • Ejemplo:

    @MethodSource("com.ejemplo.Proveedores#datos")

🔄 ¿Y el símbolo $?

El símbolo $ normalmente no se usa en @MethodSource. Pero aparece en estos contextos:

Uso del símbolo Contexto
Outer$Inner Se refiere a clases internas en Java.
Ejemplo "com.ejemplo.OuterClass$InnerClass#metodo"

🧠 Resumen rápido

Caso Sintaxis Ejemplo
Mismo método en la clase del test "metodo" "provideData"
Método en otra clase "paquete.Clase#metodo" "com.foo.Bar#datos"
Método en clase interna "paquete.ClaseExterna$Interna#metodo" "com.foo.Bar$Inner#datos"