In the below code we are going to mock the List Interface and override the method behaviour of List Methods
Methods mocked
- get(index)
- size()
- exception
ListTest.java
package com.mugil.org;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import static org.junit.Assert.assertNotEquals;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.junit.Assert.assertEquals;
public class ListTest {
List arrEmployee;
@Before
public void init(){
arrEmployee = mock(List.class);
}
@Test
public void ListMock_SizeMethod(){
when(arrEmployee.size()).thenReturn(3);
assertEquals(3, arrEmployee.size());
}
@Test
public void ListMock_GetMethod(){
when(arrEmployee.get(0)).thenReturn("Employee1");
when(arrEmployee.get(1)).thenReturn("Employee2");
when(arrEmployee.get(2)).thenReturn("Employee3");
assertEquals("Employee2", arrEmployee.get(1));
assertNotEquals(null, arrEmployee.get(2));
}
@Test(expected = RuntimeException.class)
public void ListMock_ThrowException(){
when(arrEmployee.get(anyInt())).thenThrow(new RuntimeException());
arrEmployee.get(1);
}
}