【问题标题】:How to assert csv file content exists in laravel integration testing如何断言 csv 文件内容存在于 laravel 集成测试中
【发布时间】:2017-05-26 07:05:53
【问题描述】:

我正在为 csv 文件下载进行集成测试。我想知道在运行测试用例时有没有办法检查文件内容?

【问题讨论】:

  • 如何运行测试?
  • 文件是否已经存在?还是你在生成它?
  • @Ross Wilson:我得到了生成文件的副本并将其存储在项目中的 Temp 文件夹中。该文件的 file_exists() 也返回 true
  • @Nikhil Radadiya :我使用终端运行测试
  • 也许显示你当前的代码?

标签: php laravel csv integration-testing


【解决方案1】:

您可以通过asserContains 检索内容并检查强制值,也可以将 csv 文件解析为数组并使用assertArraySubset,或者您完全处理文件并检查最终结果(数据库行等)

编辑:

要读取文件,您可以更轻松地使用来自Fileclass 的静态方法:File::get($filepath) 或直接通过文件对象:$file->getContents() 如果最后一种方法不起作用,只需执行以下操作: File::get($file->getRealPath())

【讨论】:

  • File::get($file->getRealPath()) 这个“文件”的位置是什么
  • 您只需要通过$file = $request->file('file_field')检索UploadedFile
  • 请求在控制器函数中被调用,我没有在集成测试类中调用它
  • 你应该这样做
  • 在集成测试类中我还不需要Request
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
  • 2018-01-23
  • 2020-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多