POIライブラリを用いてHttpServletResponseに出力したExcelファイルの内容をJUnitでテストする方法。
responseからの読込にハマったので備忘として残します。
testクラスではMockHttpServletResponseを用いてresponseを生成する。
//テスト対象クラスへ渡すresponse
MockHttpServletResponse response = new MockHttpServletResponse();
//テスト対象クラスで処理したresponseから出力するExcelファイルをInputStreamで読込
InputStream inputStream = new ByteArrayInputStream(response.getContentAsByteArray());
xlsx形式はバイナリファイルなので、
HttpServletResponse
のgetContentAsByteArray()
を用いてInputStream
で読み込む事ができる。
後は
Workbook workbook = WorkbookFactory.create(inputStream);
でExcelファイルを開いて内容を1セルずつtestしていけばOK。