我正在编写一些广泛使用文件系统的对象。我不确定测试它们的正确方法是什么。我知道理论上我应该在某些对象中抽象文件系统功能然后模拟它们,但在我的情况下这毫无意义:我要测试的类的主要用途是管理文件。所以我在测试新对象时会遇到同样的问题,只是移动了一个级别。我认为进行测试的唯一方法是实际使用文件系统。问题是测试将同时在浏览器和命令行中运行,因此我需要在每个人都具有写入权限的目录中工作。此外,这似乎不是一个非常便携的解决方案。有什么想法吗? 最佳答案 您可以mockthefilesystemwithvfsStream作为suggestedin
我尝试使用PHPUnit和vfsStream测试move_uploaded_file和is_uploaded_file。他们总是返回错误。publicfunctiontestShouldUploadAZipFileAndMoveIt(){$_FILES=array('fieldName'=>array('name'=>'file.zip','type'=>'application/zip','tmp_name'=>'vfs://root/file.zip','error'=>0,'size'=>0,));vfsStream::setup();$vfsStreamFile=vfsStre
我正在尝试使用vfsStream模拟文件系统操作(实际上是从php://input中读取),但缺乏合适的文档和示例确实阻碍了我。我正在测试的类的相关代码如下:classRequestBodyimplementsiface\request\RequestBody{constREQ_PATH='php://input',protected$requestHandle=false;/***Obtainahandletotherequestbody**@returnresourceafilepointerresourceonsuccess,orFALSEonerror.*/protectedf