Junit mockito 測(cè)試Controller層方法有Pageable異常

1、問(wèn)題

在使用MockMVC+Mockito模擬Service層返回的時(shí)候,當(dāng)我們?cè)贑ontroller層中參數(shù)方法調(diào)用有Pageable對(duì)象的時(shí)候,我們會(huì)發(fā)現(xiàn),我們沒(méi)辦法生成一個(gè)Pageable的對(duì)象,會(huì)報(bào)一個(gè)Pageable是一個(gè)接口的錯(cuò)誤。當(dāng)我們把所有的參數(shù)從Pageable接口變成Pageable的實(shí)現(xiàn)類PageRequest的時(shí)候,所有的方法參數(shù)都換成PageRequest,又會(huì)出現(xiàn)一個(gè)新的錯(cuò)誤,且不說(shuō)PageRequest不能作為參數(shù)用于hibernate的分頁(yè)查詢,另一方面,它沒(méi)有構(gòu)造方法,也無(wú)法初始化。

2、代碼

1)controller代碼,主要是 

復(fù)制代碼
@RequestMapping("/banners") public DataMap showBanners(BannerQuery bannerQuery, @PageableDefault(sort = "createdAt", direction = Sort.Direction.DESC) Pageable pageable) {
        Page<Banner> page = bannerService.findPage(bannerQuery, pageable); return new DataMap().addAttribute(Constants.STATUS_CODE, StatusCode.SUCCESS.getStatusCode())
                .addAttribute(Constants.DATA, page);
    }
復(fù)制代碼

 

2)測(cè)試方法: