Professional Documents
Culture Documents
Easymock: Testing Mediator Objects
Easymock: Testing Mediator Objects
3
copyright 2008 trainologic LTD
EasyMock
4
copyright 2008 trainologic LTD
EasyMock
5
copyright 2008 trainologic LTD
EasyMock
6
copyright 2008 trainologic LTD
EasyMock
7
copyright 2008 trainologic LTD
EasyMock
9
copyright 2008 trainologic LTD
EasyMock
10
copyright 2008 trainologic LTD
EasyMock
11
copyright 2008 trainologic LTD
EasyMock
@Test
public void testObservableCollection() {
Object objToAdd = new Object();
listenerMock.expect(1);
collection.addListener(listenerMock);
collection.add(objToAdd);
listenerMock.verify();
}
12
copyright 2008 trainologic LTD
EasyMock
13
copyright 2008 trainologic LTD
EasyMock
14
copyright 2008 trainologic LTD
EasyMock
Introduction to EasyMock
16
copyright 2008 trainologic LTD
EasyMock
EasyMock - Benefits
17
copyright 2008 trainologic LTD
EasyMock
EasyMock - Installation
• Download EasyMock.
• Unzip the package.
• Add easymock.jar to your classpath.
• That is it!!!
18
copyright 2008 trainologic LTD
EasyMock
EasyMock
Create a Mock
19
copyright 2008 trainologic LTD
EasyMock
EasyMock
Create a Mock
Set Expectations
19
copyright 2008 trainologic LTD
EasyMock
EasyMock
Create a Mock
Set Expectations
Run Test
19
copyright 2008 trainologic LTD
EasyMock
EasyMock
Create a Mock
Set Expectations
Run Test
Verify
19
copyright 2008 trainologic LTD
EasyMock
EasyMock
@Test
public void testObservableCollection() {
mockListener = EasyMock.createMock(Listener.class);
//Recording
mockListener.elementAdded();
EasyMock.replay(mockListener);
//Playing
Object objToAdd = new Object();
collection.addListener(mockListener);
collection.add(objToAdd);
//Verifying
EasyMock.verify(mockListener);
}
20
copyright 2008 trainologic LTD
EasyMock
EasyMock
21
copyright 2008 trainologic LTD
EasyMock
EasyMock
• Then the actual test is run and the Mock is being used
by the tested code.
22
copyright 2008 trainologic LTD
EasyMock
Creating Mock
23
copyright 2008 trainologic LTD
EasyMock
Creating Mock
24
copyright 2008 trainologic LTD
EasyMock
Setting Expectations
listenerMock = EasyMock.createMock(Listener.class);
//Recording
listenerMock.elementAdded();
EasyMock.replay(listenerMock);
26
copyright 2008 trainologic LTD
EasyMock
listenerMock = EasyMock.createMock(Listener.class);
//Recording
listenerMock.elementAdded(element);
EasyMock.replay(listenerMock);
27
copyright 2008 trainologic LTD
EasyMock
listenerMock = EasyMock.createMock(Listener.class);
//Recording
listenerMock.elementAdded(element);
EasyMock.expectLastCall().times(3);
EasyMock.replay(listenerMock);
28
copyright 2008 trainologic LTD
EasyMock
listenerMock = EasyMock.createMock(Listener.class);
//Recording
EasyMock.expect(listenerMock.getCallCount()).andReturn(3);
EasyMock.replay(listenerMock);
29
copyright 2008 trainologic LTD
EasyMock
listenerMock = EasyMock.createMock(Listener.class);
//Recording
listenerMock.getCallCount();
EasyMock.expectLastCall().andThrow(new RuntimeExcetion());
EasyMock.replay(listenerMock);
30
copyright 2008 trainologic LTD
EasyMock
Setting Expectations -
Combination
• We can combine all the options:
listenerMock = EasyMock.createMock(Listener.class);
//Recording
listenerMock.getCallCount();
EasyMock.expectLastCall()
.andReturn(3)
.times(2)
.andThrow(new RuntimeExcetion());
EasyMock.replay(listenerMock);
31
copyright 2008 trainologic LTD
EasyMock
listenerMock = EasyMock.createMock(Listener.class);
//Recording
listenerMock.getCallCount();
EasyMock.expectLastCall().times(2, 5); //At least 2 Max 5
EasyMock.expectLastCall().atLeastOnce(); //one or more
EasyMock.expectLastCall().anyTimes(); //zero or more
EasyMock.replay(listenerMock);
32
copyright 2008 trainologic LTD
EasyMock
listenerMock = EasyMock.createStrictMock(Listener.class);
33
copyright 2008 trainologic LTD
EasyMock
strictControl = EasyMock.createStrictControl();
listenerMock = strictControl.createMock(Listener.class);
34
copyright 2008 trainologic LTD
EasyMock
listenerMock = EasyMock.createMock(Listener.class);
//Recording
listenerMock.elementAdded(EasyMock.anyObject(element));
EasyMock.replay(listenerMock);
35
copyright 2008 trainologic LTD
EasyMock
36
copyright 2008 trainologic LTD
EasyMock
listenerMock = EasyMock.createNiceMock(Listener.class);
37
copyright 2008 trainologic LTD
EasyMock
EasyMock.replay(listenerMock);
39
copyright 2008 trainologic LTD
EasyMock
40
copyright 2008 trainologic LTD
EasyMock
Verification
41
copyright 2008 trainologic LTD
EasyMock
Summary
42
copyright 2008 trainologic LTD