Comment résoudre l'exception Stubbing Unneccessary
Mon Code est comme ci-dessous,
@RunWith(MockitoJUnitRunner.class)
public class MyClass {
private static final String code ="Test";
@Mock
private MyClassDAO dao;
@InjectMocks
private MyClassService Service = new MyClassServiceImpl();
@Test
public void testDoSearch() throws Exception {
final String METHOD_NAME = logger.getName().concat(".testDoSearchEcRcfInspections()");
CriteriaDTO dto = new CriteriaDTO();
dto.setCode(code);
inspectionService.searchEcRcfInspections(dto);
List<SearchCriteriaDTO> summaryList = new ArrayList<SearchCriteriaDTO>();
inspectionsSummaryList.add(dto);
when(dao.doSearch(dto)).thenReturn(inspectionsSummaryList);//got error in this line
verify(dao).doSearchInspections(dto);
}
}
Je suis en dessous exception
org.mockito.exceptions.misusing.UnnecessaryStubbingException: Unnecessary stubbings detected in test class: Test Clean & maintainable test code requires zero unnecessary code. Following stubbings are unnecessary (click to navigate to relevant line of code): 1. -> at service.Test.testDoSearch(Test.java:72) Please remove unnecessary stubbings or use 'silent' option. More info: javadoc for UnnecessaryStubbingException class. at org.mockito.internal.exceptions.Reporter.formatUnncessaryStubbingException(Reporter.java:838) at org.mockito.internal.junit.UnnecessaryStubbingsReporter.validateUnusedStubs(UnnecessaryStubbingsReporter.java:34) at org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:49) at org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:103) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
S'il vous plaît aider moi comment faire pour résoudre
source d'informationauteur VHS
Vous devez vous connecter pour publier un commentaire.
Remplacer
@RunWith(MockitoJUnitRunner.class)
avec@RunWith(MockitoJUnitRunner.Silent.class)
.La
when
ici configure votre maquette à faire quelque chose. Cependant, vous donot utiliser cette maquette en quelque sorte plus après cette ligne (en dehors de faire unverify
). Mockito vous avertit que lewhen
ligne est donc inutile. Peut-être que vous avez fait une erreur de logique?Au premier abord, vous devriez vérifier votre test de logique. Généralement, il existe 3 cas. Tout d'abord, vous êtes moqueur mauvaise méthode (vous avez fait une faute de frappe ou certains on a changé de code à tester donc, qui se sont moqués de la méthode n'est plus utilisée). Deuxièmement, le test échoue avant cette méthode est appelée. Troisièmement, vous logique tombe dans le mal, si/changer de branche quelque part dans le code qui se sont moqués de la méthode n'est pas appelée.
Si c'est le premier cas on a toujours envie de changement se moquaient de méthode pour celle qui est utilisée dans le code. Avec la deuxième et la troisième il dépend. Habituellement, vous devez simplement supprimer cette fantaisie si il n'est pas utilisé. Mais parfois il y a certains cas dans les tests paramétrés, ce qui devrait prendre ce chemin différent ou ne parviennent pas plus tôt. Ensuite, vous pouvez partager ce test en deux ou plus de deux, mais ce n'est pas toujours bonne à la recherche. 3 méthodes d'essai éventuellement avec 3 arguments fournisseurs peuvent vous faire le test illisible. Dans ce cas, pour JUnit 4 vous taire cette exception soit avec
annotation ou si vous êtes en utilisant la règle approche
Pour JUnit 5 tests que vous pouvez taire cette exception à l'aide de l'annotation fourni dans
mockito-junit-jupiter
paquet.À la recherche à une partie de votre stack trace, il ressemble à vous cogner la
dao.doSearch()
ailleurs. De plus, comme à plusieurs reprises de créer les talons de la même méthode.Examiner le dessous de la Classe de Test par exemple:
Je préfère considérant refactoring vos tests stub si nécessaire.
Si vous êtes en utilisant ce style plutôt:
de le remplacer par: