Quantcast
Channel: Magnus K Karlsson
Viewing all articles
Browse latest Browse all 526

Getting Started with Mockito

$
0
0

Introduction

To create effective unit test, they should be fast. But also you might need to mock object out to be able to write unit tests. The most common library to use for mocking is mockito.

Example: Mock expected results



import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
...
@Test
public void testIterator() throws Exception {
Iterator mock = mock(Iterator.class);
when(mock.next()).thenReturn("Hello").thenReturn("World");
assertThat("Hello World", is(equalTo(mock.next() + "" + mock.next())));
}

Example: Mock expected result with input



import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
...
@Test
public void testArrayList() throws Exception {
ArrayList mock = mock(ArrayList.class);
when(mock.get(1)).thenReturn("Foo");
assertThat("Foo", is(equalTo(mock.get(1))));
}

Example: Mock expected results with any input



import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
...
@Test
public void testArrayListAny() throws Exception {
ArrayList mock = mock(ArrayList.class);
when(mock.get(anyInt())).thenReturn("Foo");
assertThat("Foo", is(equalTo(mock.get(1))));
}

Example: Mock and expect exception



import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
...
@Test(expected = IOException.class)
public void testOutputStream() throws Exception {
OutputStream mock = mock(OutputStream.class);
doThrow(new IOException()).when(mock).close();
mock.close();
}

Example: Mock and verify that metods were invoked



import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
...
@Test
public void testOutputStreamVerify() throws Exception {
OutputStream mock = mock(OutputStream.class);
BufferedOutputStream fos = new BufferedOutputStream(mock);
fos.close();
verify(mock).close();
}


Viewing all articles
Browse latest Browse all 526

Trending Articles