我有一个返回Excel文件的操作.在浏览器中访问该路由将自动下载我的Excel文件.
我为该操作编写了一个测试,但我能断言的所有内容都是来自头文件的数据.此外,测试将响应直接输出到控制台,文本如w֑m J 9 9 e o .
有没有办法对来自Excel文件输出的数据进行断言?文件未保存,仅显示内容作为响应.
我正在使用Symfony2.
编辑
我找到了一种通过在输出缓冲区中保存响应来读取数据的方法,将内容保存在.xlsx文件中,转换为.csv文件并从那里获取内容.
ob_start(); $this->client->request( 'GET','/myUrl',array(),array() ); $content = ob_get_clean(); file_put_contents('MyFile.xlsx',$content); $reader = \PHPExcel_IOFactory::createReader('Excel2007'); $excel = $reader->load('MyFile.xlsx'); $writer = \PHPExcel_IOFactory::createWriter($excel,'CSV'); $writer->save('MyFileCsv.csv'); $newContent = fgetcsv(fopen("MyFileCsv.csv","r"));
这只是一个草图.我在这里停了下来,没有尝试阅读所有内容并制作断言,但我确信它可以通过这种方式完成.
啊,别忘了删除之后的文件.
解决方法
您可以使用PHPexcel(可在此处找到:
phpexcel)来解析您的Excel并断言由phpexcel收集的数据