public void exportToExcel(CreditHrtActivityQueryDT0 creditHrtActivityQueryDTo, HttpServletresponse response) log.info("华润通赠积分活动明细报表导出开始,参数--》{}",credithrIActivityqueryDTo); File filemcreditHrtActivityService.export(creditHrtActivityQueryDTo); response.setcontentType("application/vnd.ms-excel;charset=utf-8"); String fileName =""; try { SecureHttpUtils.export(response, file,fileName,deleteFileAfterExport: false, contentType: null);} catch (I0Exception e){ Log.error("导出异常",e); throw new BizException("导出异常");} log.info("华润通赠积分活动明细报表导出,结束"); }请根据以上代码编写单元测试,需要使用mockito.lenient().when(xx).thenReturn,直接mock掉Serivice层的内容,
时间: 2024-03-16 19:42:12 浏览: 70
假设CreditHrtActivityService是需要mock的Service层,可以使用Mockito框架进行mock操作,编写单元测试代码如下:
```
@RunWith(MockitoJUnitRunner.class)
public class ExportToExcelTest {
@Mock(lenient = true)
private CreditHrtActivityService creditHrtActivityService;
@Mock(lenient = true)
private HttpServletResponse response;
@InjectMocks
private ExportToExcel exportToExcel;
@Test
public void testExportToExcel() throws IOException {
CreditHrtActivityQueryDT0 creditHrtActivityQueryDTo = new CreditHrtActivityQueryDT0();
File file = new File("test.xls");
String fileName = "test.xls";
// mock creditHrtActivityService的export方法
Mockito.lenient().when(creditHrtActivityService.export(creditHrtActivityQueryDTo)).thenReturn(file);
exportToExcel.exportToExcel(creditHrtActivityQueryDTo, response);
// 验证response的contentType是否正确设置
Mockito.verify(response).setContentType("application/vnd.ms-excel;charset=utf-8");
// 验证SecureHttpUtils的export方法是否正确调用
Mockito.verify(SecureHttpUtils).export(response, file, fileName, false, null);
}
}
```
在测试方法中,首先创建需要传入的参数,然后使用Mockito框架的Mock注解对需要mock的Service层和HttpServletResponse对象进行mock操作。在@InjectMocks注解下,创建需要测试的对象,并调用需要测试的方法。使用Mockito框架的lenient().when().thenReturn()方法对需要mock的Service层的方法进行mock操作。最后,使用Mockito框架的verify()方法对需要验证的对象进行验证操作。
阅读全文