KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
This is what I found from my initial attempts to use JMockIt. I must admit that I found the JMockIt documentation very terse for what it provides and hence I might have missed something. Nonetheless, this is what I understood: Mockito: List a = mock(ArrayList.class) does not stub out all methods of List.class by default. a.add("foo") is going to do the usual thing of adding the element to the list. JMockIt: @Mocked ArrayList<String> a; It stubs out all the methods of a by default. So, now a.add("foo") is not going to work. This seems like a very big limitation to me in JMockIt. How do I express the fact that I only want you to give me statistics of add() method and not replace the function implementation itself What if I just want JMockIt to count the number of times method add() was called, but leave the implementation of add() as is? I a unable to express this in JMockIt. However, it seems I can do this in Mockito using spy() I really want to be proven wrong here. JMockit claims that it can do everything that other mocking frameworks do plus a lot more. Does not seem like the case here @Test public void shouldPersistRecalculatedArticle() { Article articleOne = new Article(); Article articleTwo = new Article(); when(mockCalculator.countNumberOfRelatedArticles(articleOne)).thenReturn(1); when(mockCalculator.countNumberOfRelatedArticles(articleTwo)).thenReturn(12); when(mockDatabase.getArticlesFor("Guardian")).thenReturn(asList(articleOne, articleTwo)); articleManager.updateRelatedArticlesCounters("Guardian"); InOrder inOrder = inOrder(mockDatabase, mockCalculator); inOrder.verify(mockCalculator).countNumberOfRelatedArticles(isA(Article.class)); inOrder.verify(mockDatabase, times(2)).save((Article) notNull()); } @Test public void shouldPersistRecalculatedArticle() { final Article articleOne = new Article(); final Article articleTwo = new Article(); new Expectations() {{
Tags (comma-separated)
Save Edits
Cancel