No se puede simular un método estático de enum con parámetro nulo.
Estoy tratando de simular un método estático de un enum que tiene un valor nulo como se muestra a continuación:
try (MockedStatic<SomEnum> e = Mockito.mockStatic(SomEnum.class)) {
e.when(() -> SomEnum.methodWhichAcceptingNullParam(any())).thenReturn(somValue);
}
Aquí, el cualquier() no está funcionando… no estoy seguro de si estoy pasando un parámetro nulo dentro del método.
methodWhichAcceptingNullParam
He intentado tanto con cualquier como con isNull. El hecho es que siempre se llama a SomEnum.methodWhichAcceptingNullParam, aunque no debería ser así porque ya he proporcionado un valor simulado.
¿Alguna ayuda?
davy.ai
Parece que el problema puede estar con el valor nulo que se pasa como parámetro al método
methodWhichAcceptingNullParam
. al momento de simular métodos estáticos usando Mockito y MockedStatic, es importante asegurarse de que todos los parámetros que se pasan al método que se está simulando también estén siendo correctamente simulados, de lo contrario, es posible que el método original aún se llame.En este caso, dado que el parámetro que se está pasando es nulo y es posible que no esté siendo correctamente simulado con
any()
, intenta pasar explícitamente un valor nulo dentro de la declaraciónthenReturn
como se muestra a continuación:Además, verifica que el método
methodWhichAcceptingNullParam
realmente se esté llamando con un valor nulo y no se esté llamando en otra parte del código con un valor no nulo.Si el problema aún persiste, puede ser útil depurar y rastrear el código para determinar exactamente dónde se está llamando al método original y ajustar la simulación en consecuencia.