Mockito (七)
Mockito 参数匹配顺序
如果参数匹配即声明了精确匹配,也声明了模糊匹配;又或者同一个值的精确匹配出现了两次,使用时会匹配哪一个?
会匹配符合匹配条件的最新声明的匹配。
示例:
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.List; import static org.mockito.Mockito.*; @RunWith(MockitoJUnitRunner.class) public class MockitoDemo { @Mock private List<String> testList; @Test public void test01() { // 精确匹配 0 when(testList.get(0)).thenReturn("a"); Assert.assertEquals("a", testList.get(0)); // 精确匹配 0 when(testList.get(0)).thenReturn("b"); Assert.assertEquals("b", testList.get(0)); // 模糊匹配 when(testList.get(anyInt())).thenReturn("c"); Assert.assertEquals("c", testList.get(0)); Assert.assertEquals("c", testList.get(1)); } @Test public void test02() { // 模糊匹配 when(testList.get(anyInt())).thenReturn("c"); Assert.assertEquals("c", testList.get(0)); Assert.assertEquals("c", testList.get(1)); // 精确匹配 0 when(testList.get(0)).thenReturn("a"); Assert.assertEquals("a", testList.get(0)); Assert.assertEquals("c", testList.get(1)); } }
转载:https://www.letianbiji.com/java-mockito/mockito-parameter-match-order.html
带着疑问去思考,然后串联,进而归纳总结,不断追问自己,进行自我辩证,像侦查嫌疑案件一样看待技术问题,漆黑的街道,你我一起寻找线索,你就是技术界大侦探福尔摩斯