Mockito Vs EasyMock Mockito - Mockito Wiki
Mockito Vs EasyMock Mockito - Mockito Wiki
Code Issues 272 Pull requests 19 Actions Projects 1 Wiki Security Insights
Again, hats down before the EasyMock gang (record-playback is one of the coolest ideas I came across) - THANKS!!! Mockito Pages 31
started off as an EasyMock fork but we evolved too much and we don't share any code with EasyMock. Most of the logic was
rewritten, some of the code was also inspired by jMock (like the excellent ClassImposterizer ).
Home
EasyMock
Main
import static org.easymock.classextension.EasyMock.*;
What's new in Mockito 2
someCodeThatInteractsWithMock(); Mocking
verify(mock); FAQ
How to write good tests
Greedy algorithm of
Mockito verification InOrder
Private methods
Object creation
import static org.mockito.Mockito.*; Declaring mockito
dependency
List mock = mock(List.class); Using Spies (and Fakes)
when(mock.get(0)).thenReturn("one"); Contributing
when(mock.get(1)).thenReturn("two");
Using git for a pull
someCodeThatInteractsWithMock(); request
Features and
motivations
Similarities License
Usage in other projects
Allow the same level verification as EasyMock (unexpected invocations, redundant invocations, verification in order)
Argument matchers ( anyInt() , anyObject() , etc.)
Related projects
Forks / Other languages
Differences Java 1.4
For other languages
No record/replay modes - no need for them. There only 2 things you can do with Mockito mocks - verify or stub. Stubbing For python
goes before execution and verification afterwards.
All mocks are nice (even somehow nicer, because collection-returning methods return empty collections instead of nulls).
Social
Even though mocks are nice, you can verify them as strictly as you want and detect any unwanted interaction. Quotes
Explicit language for better readability: verify() and when() VS the mixture of expect(mock.foo()) and mock.foo()
(plain method call without expect). I'm sure some of you will find this argument subjective :) Clone this wiki locally
https://github.com/mockit
Simplified stubbing model - stubbed methods replay all the time with stubbed value no matter how many times they are
called. Works exactly like EasyMock's andStubReturn() , andStubThrow() . Also, you can stub with different return values for
different arguments (like in EasyMock).
Verification of stubbed methods is optional because usually it's more important to test if the stubbed value is used correctly
rather than where's it come from.
Verification is explicit - verification errors point at line of code showing what interaction failed.
Verification in order is flexible and doesn't require to verify every single interaction.
Custom argument matchers use hamcrest matchers, so you can use your existing hamcrest matchers. (EasyMock can also
integrate with Hamcrest though it is not a part of EasyMock but Hamcrest. See the documentation of Hamcrest).
Verification in order
EasyMock
expect(one.add("one")).andReturn(true);
expect(two.add("two")).andReturn(true);
control.replay();
someCodeThatInteractsWithMocks();
control.verify();
Mockito
someCodeThatInteractsWithMocks();
inOrder.verify(one).add("one");
inOrder.verify(two).add("two");
EasyMock
mock.clear();
expectLastCall().andThrow(new RuntimeException());
replay(mock);
Mockito
doThrow(new RuntimeException()).when(mock).clear();
EasyMock
mock.clear();
expectLastCall().times(3);
expect(mock.add(anyObject())).andReturn(true).atLeastOnce();
replay(mock);
someCodeThatInteractsWithMock();
verify(mock);
Mockito
someCodeThatInteractsWithMock();
verify(mock, times(3)).clear();
verify(mock, atLeastOnce()).add(anyObject());
© 2020 GitHub, Inc. Terms Privacy Security Status Help Contact GitHub Pricing API Training Blog About