如何对 Excel 文件中的内容进行断言?

Mon*_*arc 5 php excel phpunit assert symfony

我有一个返回 Excel 文件的操作。在浏览器中访问该路线将自动下载我的 Excel 文件。

我为该操作编写了一个测试,但我只能断言来自标题的数据。此外,测试将响应直接输出到控制台,并带有类似w?m?J?9???9?e??o??.

有没有办法对来自该 Excel 文件输出的数据进行断言?不保存文件,只显示内容作为响应。我正在使用 Symfony2。

编辑

我找到了一种通过将响应保存在输出缓冲区中、将内容保存在 .xlsx 文件中、转换为 .csv 文件并从那里获取内容来读取数据的方法。

    ob_start();
    $this->client->request(
        'GET',
        '/myUrl',
        array(),
        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"));
Run Code Online (Sandbox Code Playgroud)

这里只是一个草图。我停在这里,没有尝试阅读所有内容并进行断言,但我确信可以通过这种方式完成。啊,别忘了之后删除文件。

小智 1

您可以使用 PHPexcel (可以在这里找到:phpexcel)来解析您的 excel 并断言 phpexcel 收集的数据