Recherche des instructions statiques d’importation pour les constructions Mockito

J’essaie de percer le mur de briques entre Mockito et moi. Je me suis arraché les cheveux en essayant d’obtenir des instructions statiques d’importation correctes pour les trucs Mockito. On pourrait penser que quelqu’un va juste jeter une table en disant que anyInt () provient de org.mockito.Matchers et quand () provient de org.mockito.Mockito , etc., mais cela serait trop utile pour les nouveaux venus, non?

Ce genre de chose, surtout lorsqu’il est mélangé avec une myriade d’instructions d’importation se terminant par des astérisques, n’est pas toujours très utile:

import static org.junit.Assert.*; import static org.mockito.Mockito.*; 

Oui, je connais et j’ai essayé d’utiliser la fenêtre Eclipse -> Préférences-> Java -> Editeur-> Assistant de contenu -> Mécanisme de favoris . Ça aide, mais ça ne touche pas la tête.

Toute réponse à cette question serait appréciée.

Merci beaucoup, Russ

Le problème est que les importations statiques de Hamcrest et Mockito ont des noms similaires, mais renvoient respectivement des valeurs Matchers et des valeurs réelles.

Une solution consiste à copier simplement les classes Hamcrest et / ou Mockito et à supprimer / renommer les fonctions statiques pour qu’elles soient plus faciles à mémoriser et moins visibles dans l’auto-complétion. C’est ce que j’ai fait.

De plus, en utilisant des simulacres, j’essaie d’éviter d’ assertThat

 assertEquals(1, 1); verify(someMock).someMethod(eq(1)); 

au lieu de

 assertThat(1, equalTo(1)); verify(someMock).someMethod(eq(1)); 

Si vous supprimez les classes de vos favoris dans Eclipse, et tapez le nom long, par exemple org.hamcrest.Matchers.equalTo et faites CTRL + SHIFT + M pour “Ajouter Importation”, l’autocomplétion affichera uniquement les correspondances Hamcrest, pas les Mockito . Et vous pouvez le faire dans l’autre sens tant que vous ne mélangez pas les allumettes.

Voici ce que j’ai fait pour faire face à la situation.

J’utilise les importations globales sur une nouvelle classe de test.

 import static org.junit.Assert.*; import static org.mockito.Mockito.*; import static org.mockito.Matchers.*; 

Lorsque vous avez fini d’écrire votre test et que vous devez le valider, il vous suffit de CTRL + MAJ + O pour organiser les packages. Par exemple, vous pouvez simplement restr avec:

 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.anySsortingng; 

Cela vous permet de coder sans être “bloqué” en essayant de trouver le package correct à importer.

Pour is ()

 import static org.hamcrest.CoreMatchers.*; 

Pour assertThat ()

 import static org.junit.Assert.*; 

Pour when () et verify ()

 import static org.mockito.Mockito.*;