Junit mockito 測試Controller層方法有Pageable異常

1、問題

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

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)測試方法: