java - all - Encontrar declaraciones de importación estáticas para construcciones de Mockito
powermock example (3)
Estoy tratando de atravesar la pared de ladrillos entre Mockito y yo. Me he arrancado el pelo al intentar obtener las instrucciones estáticas de importación correctas para las cosas de Mockito. Uno pensaría que alguien simplemente arrojaría una tabla diciendo que anyInt () proviene de org.mockito.Matchers y cuando () proviene de org.mockito.Mockito , etc., pero eso sería muy útil para los recién llegados, ¿no?
Este tipo de cosas, especialmente cuando se mezclan con miles de declaraciones de importación que terminan en asteriscos, no siempre son muy útiles:
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
Sí, conozco y he estado tratando de usar la ventana de Eclipse -> Preferencias -> Java -> Editor -> Asistencia de contenido -> Mecanismo de favoritos . Ayuda, pero no golpea el clavo en la cabeza.
Cualquier respuesta a esta pregunta sería apreciada.
Muchas gracias russ
El problema es que las importaciones estáticas de Hamcrest y Mockito tienen nombres similares, pero devuelven Matchers y valores reales, respectivamente.
Una solución alternativa es simplemente copiar las clases de Hamcrest y / o Mockito y eliminar / cambiar el nombre de las funciones estáticas para que sean más fáciles de recordar y menos se muestren en el auto completado. Eso fue lo que hice.
Además, al usar simulacros, trato de evitar la assertThat
favorece otras assertions
y verify
, por ejemplo,
assertEquals(1, 1);
verify(someMock).someMethod(eq(1));
en lugar de
assertThat(1, equalTo(1));
verify(someMock).someMethod(eq(1));
Si elimina las clases de sus Favoritos en Eclipse y escribe el nombre largo, por ejemplo, org.hamcrest.Matchers.equalTo
y org.hamcrest.Matchers.equalTo
CTRL + MAYÚS + M para ''Agregar importación'', el autocompletar solo le mostrará los comparadores de Hamcrest, no los comparadores de Mockito . Y puedes hacer esto de la otra manera siempre y cuando no mezcles matchers.
Esto es lo que he estado haciendo para hacer frente a la situación.
Yo uso las importaciones globales en una nueva clase de prueba.
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import static org.mockito.Matchers.*;
Cuando haya terminado de escribir su prueba y necesite confirmar, simplemente presione CTRL + MAYÚS + O para organizar los paquetes. Por ejemplo, puedes quedarte con:
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.Matchers.anyString;
Esto le permite codificar sin quedar ''atascado'' tratando de encontrar el paquete correcto para importar.
Para es()
import static org.hamcrest.CoreMatchers.*;
Para assertThat ()
import static org.junit.Assert.*;
Para cuando () y verificar ()
import static org.mockito.Mockito.*;