2016-09-13 6 views
-1

spöttischen Wenn ich versuche, den folgenden TestMockito Ausnahme beim

public class FavoriteServiceTest extends AbstractCoreTest { 

    @Autowired 
    private FavoriteRepository favoriteRepository; 

    @Autowired 
    private RevisionService revisionService; 

    @Autowired 
    private FavoriteService favoriteService; 

    @Before 
    public void setUp() throws Exception { 
     MockitoAnnotations.initMocks(this); 
     when(revisionService.getGlobalRevisionNumber()).thenReturn(1L); 
    } 

    @Test 
    public void loadFavorites() throws Exception { 
     when(favoriteRepository.findFavoritesByUserId("123")).thenReturn(Collections.emptyList()); 
     List<Favorite> favorites = favoriteService.loadFavorites(123L); 

     assertThat(favorites.size(), is(0)); 
    } 

ich die folgende Ausnahme laufen, aber ich bin ziemlich sicher, dass das Mock richtige

org.mockito.exceptions.misusing initialisiert ist .MissingMethodInvocationException: when() benötigt ein Argument, das 'ein Methodenaufruf bei einem Mock' sein muss. Zum Beispiel: wenn (mock.getArticles()). ThenReturn (Artikel);

Auch dieser Fehler kann angezeigt werden, weil: 1. Sie stub entweder final/private/equals()/hashCode() -Methoden. Diese Methoden können nicht Stubbled/verifiziert werden. Spottungsmethoden , die für nicht öffentliche Elternklassen deklariert sind, werden nicht unterstützt. 2. innerhalb von w wenn() Sie nicht Methode auf Mock sondern auf ein anderes Objekt aufrufen.

bei FavoriteServiceTest.setUp (FavoriteServiceTest.java:44) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) bei sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) bei sun.reflect .DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) bei java.lang.reflect.Method.invoke (Method.java:498) um ​​ org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:50) um org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:12) um org.junit.runners.model.Framewor kMethod.invokeExplosively (FrameworkMethod.java:47) bei org.junit.internal.runners.statements.RunBefores.evaluate (RunBefores.java:24)

+0

Überprüfen Sie den folgenden Link wird es Ihnen helfen .. http://StackOverflow.com/Questions/9186604/mockito-Exception-when-requires-an-argument-which-has-to-be-a-method -rufen-auf – kaushik

Antwort

0

ersetzen Gerade @Autowired mit @Mock -.-

@Mock 
private DocumentService documentService; 
0

Ihr favoriteRepository sollte ein Mock-Objekt sein, vom Frühling Boot benfinit Sie @MockBean hier verwendet werden.

Verwandte Themen