mockito further examples
This commit is contained in:
parent
a66b72b25e
commit
6ed93723b8
|
@ -1,22 +1,27 @@
|
||||||
package org.baeldung.mockito;
|
package org.baeldung.mockito;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
|
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
|
||||||
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
import static org.hamcrest.Matchers.is;
|
import static org.hamcrest.Matchers.is;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
|
import static org.mockito.Matchers.anyInt;
|
||||||
import static org.mockito.Matchers.anyString;
|
import static org.mockito.Matchers.anyString;
|
||||||
|
import static org.mockito.Mockito.doAnswer;
|
||||||
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.doThrow;
|
import static org.mockito.Mockito.doThrow;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
import org.mockito.invocation.InvocationOnMock;
|
||||||
|
import org.mockito.stubbing.Answer;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public class MockitoConfigExamplesTest {
|
public class MockitoConfigExamplesTest {
|
||||||
|
|
||||||
// tests
|
// tests
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public final void whenMockBehaviorIsConfigured_thenBehaviorIsVerified() {
|
public final void whenMockReturnBehaviorIsConfigured_thenBehaviorIsVerified() {
|
||||||
final MyList listMock = Mockito.mock(MyList.class);
|
final MyList listMock = Mockito.mock(MyList.class);
|
||||||
when(listMock.add(anyString())).thenReturn(false);
|
when(listMock.add(anyString())).thenReturn(false);
|
||||||
|
|
||||||
|
@ -24,6 +29,15 @@ public class MockitoConfigExamplesTest {
|
||||||
assertThat(added, is(false));
|
assertThat(added, is(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public final void whenMockReturnBehaviorIsConfigured2_thenBehaviorIsVerified() {
|
||||||
|
final MyList listMock = Mockito.mock(MyList.class);
|
||||||
|
doReturn(false).when(listMock).add(anyString());
|
||||||
|
|
||||||
|
final boolean added = listMock.add(randomAlphabetic(6));
|
||||||
|
assertThat(added, is(false));
|
||||||
|
}
|
||||||
|
|
||||||
@Test(expected = IllegalStateException.class)
|
@Test(expected = IllegalStateException.class)
|
||||||
public final void givenMethodIsConfiguredToThrowException_whenCallingMethod_thenExceptionIsThrown() {
|
public final void givenMethodIsConfiguredToThrowException_whenCallingMethod_thenExceptionIsThrown() {
|
||||||
final MyList listMock = Mockito.mock(MyList.class);
|
final MyList listMock = Mockito.mock(MyList.class);
|
||||||
|
@ -57,4 +71,35 @@ public class MockitoConfigExamplesTest {
|
||||||
listMock.add(randomAlphabetic(6));
|
listMock.add(randomAlphabetic(6));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public final void whenMockMethodCallIsConfiguredToCallTheRealMethod_thenRealMetehodIsCalled() {
|
||||||
|
final MyList listMock = Mockito.mock(MyList.class);
|
||||||
|
when(listMock.size()).thenCallRealMethod();
|
||||||
|
|
||||||
|
assertThat(listMock.size(), equalTo(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public final void whenMockMethodCallIsConfiguredWithCustomAnswer_thenRealMetehodIsCalled() {
|
||||||
|
final MyList listMock = Mockito.mock(MyList.class);
|
||||||
|
doAnswer(new Answer<String>() {
|
||||||
|
@Override
|
||||||
|
public final String answer(final InvocationOnMock invocation) {
|
||||||
|
return "Always the same";
|
||||||
|
}
|
||||||
|
}).when(listMock).get(anyInt());
|
||||||
|
|
||||||
|
final String element = listMock.get(1);
|
||||||
|
assertThat(element, is(equalTo("Always the same")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = NullPointerException.class)
|
||||||
|
public final void givenSpy_whenConfiguringBehaviorOfSpy_thenCorrectlyConfigured() {
|
||||||
|
final MyList instance = new MyList();
|
||||||
|
final MyList spy = Mockito.spy(instance);
|
||||||
|
|
||||||
|
doThrow(NullPointerException.class).when(spy).size();
|
||||||
|
spy.size();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,14 @@ import java.util.AbstractList;
|
||||||
|
|
||||||
public class MyList extends AbstractList<String> {
|
public class MyList extends AbstractList<String> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String get(final int index) {
|
public String get(final int index) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int size() {
|
public int size() {
|
||||||
return 0;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue