Mockito (四)
Mockito @Mock 注解
@Mock 注解可以理解为对 mock 方法的一个替代。
使用该注解时,要使用MockitoAnnotations.initMocks
方法,让注解生效。
示例1:
import org.junit.Assert; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.Random; import static org.mockito.Mockito.*; public class MockitoDemo { @Mock private Random random; @Test public void test() { // 让注解生效 MockitoAnnotations.initMocks(this); when(random.nextInt()).thenReturn(100); Assert.assertEquals(100, random.nextInt()); } }
MockitoAnnotations.initMocks
放在 junit 的 @Before
注解修饰的函数中更合适。
示例2:
import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.Random; import static org.mockito.Mockito.*; public class MockitoDemo { @Mock private Random random; @Before public void before() { // 让注解生效 MockitoAnnotations.initMocks(this); } @Test public void test() { when(random.nextInt()).thenReturn(100); Assert.assertEquals(100, random.nextInt()); } }
MockitoAnnotations.initMocks 的一个替代方案是使用 MockitoJUnitRunner 。
示例3:
import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import java.util.Random; import static org.mockito.Mockito.*; @RunWith(MockitoJUnitRunner.class) public class MockitoDemo { @Mock private Random random; @Test public void test() { when(random.nextInt()).thenReturn(100); Assert.assertEquals(100, random.nextInt()); } }
转载:https://www.letianbiji.com/java-mockito/mockito-@mock.html
带着疑问去思考,然后串联,进而归纳总结,不断追问自己,进行自我辩证,像侦查嫌疑案件一样看待技术问题,漆黑的街道,你我一起寻找线索,你就是技术界大侦探福尔摩斯