一起學(xué)Mockito(一)
import org.junit.Test;import org.springframework.web.servlet.ModelAndView;import static org.junit.Assert.*;import static org.mockito.Mockito.mock;import static org.mockito.Mockito.when;public class HomeControllerTest {@Testpublic void index() {HomeController homeController =mock(HomeController.class);//打樁when(homeController.index()).thenReturn(new ModelAndView("index"));ModelAndView modelAndView = homeController.index();System.out.println(modelAndView.getViewName());assertSame(modelAndView.getViewName(),"index");}}
@Testpublic void index() {HomeController homeController =mock(HomeController.class);when(homeController.index()).thenReturn(new ModelAndView("index")).thenReturn(new ModelAndView("zhang"));ModelAndView modelAndView = homeController.index();System.out.println(modelAndView.getViewName());assertSame(modelAndView.getViewName(),"index");modelAndView = homeController.index();System.out.println(modelAndView.getViewName());Mockito.verify(homeController,times(2)).index();}
@Testpublic void dapan() {ModelAndView modelAndView=null;????????//spy用來(lái)創(chuàng)建一個(gè)實(shí)體對(duì)象,會(huì)執(zhí)行指定的調(diào)用方法。HomeController homeController = spy(HomeController.class);//在調(diào)用層設(shè)置mock對(duì)象,mock用來(lái)創(chuàng)建一個(gè)假對(duì)象,執(zhí)行方法的時(shí)候什么都不做,直接返回值????????StockService?stockService?=?mock(StockService.class);homeController.setStockService(stockService);Listresult = new ArrayList<>(); ListcandidateStockPos=new ArrayList<>(); result.add(new ShowTimeVo("2022-01-10",1));result.add(new ShowTimeVo("2022-01-09",1));result.add(new ShowTimeVo("2022-01-08",1));CandidateStockPo candidateStockPo = new CandidateStockPo();candidateStockPo.setWenyuRiver(0);candidateStockPo.setShowCode("sh.00001");candidateStockPo.setIndustry("1");candidateStockPo.setCv(1);candidateStockPo.setZsm(1);candidateStockPos.add(candidateStockPo);????????//對(duì)stockservice進(jìn)行打樁when(stockService.queryShowTime()).thenReturn(result);//進(jìn)行參數(shù)匹配when(stockService.stockToday(anyString(),anyList())).thenReturn(candidateStockPos);modelAndView=homeController.today("1","");System.out.println(modelAndView.getViewName());assertSame("today",modelAndView.getViewName());}
4、.驗(yàn)證函數(shù)的確切、最少、從未調(diào)用次數(shù)
//at leastMockito.verify(stockService,atLeast(1)).queryShowTime();//at mostMockito.verify(stockService,atMost(1)).queryShowTime();//equalsMockito.verify(stockService,times(1)).queryShowTime();
public void today() {HomeController homeController = spy(HomeController.class);StockService stockService = mock(StockService.class);homeController.setStockService(stockService);when(stockService.tongji(anyString())).thenThrow(new Exception("123"));try {homeController.today("1","1");}catch (Exception e){e.printStackTrace();}}
@Testpublic void about() {//create empty objectList tianjingle = mock(List.class);//tianjingle.add("one");tianjingle.add("two");InOrder inOrder = inOrder(tianjingle);inOrder.verify(tianjingle).add("one");inOrder.verify(tianjingle).add("two");List firstMock = mock(List.class);List secondMock = mock(List.class);firstMock.add("one");secondMock.add("1");InOrder inOrder1 = inOrder(firstMock, secondMock);inOrder1.verify(firstMock).add("one");inOrder1.verify(secondMock).add("1");}

評(píng)論
圖片
表情
