单元测试文件操作 - 在哪里维护模拟目录结构?

Unit testing file operations - where to maintain mock directory structure?

提问人:Pekka 提问时间:3/26/2010 最后编辑:Pekka 更新时间:11/26/2014 访问量:8078

问:

我对单元测试还是新手,特别是作为测试框架的 PHPUnit

假设我正在为资源加载程序类构建单元测试。该类在两个目录(一个全局目录和一个特定于用户的目录)中查找要加载的资源。

为了测试这个类,我想设置一个包含一些资源文件的模拟测试目录。我想将模拟目录放在测试套件中的某个位置(该套件是将要分发的 Web 应用程序的一部分。

对于将此测试目录放在使用此处概述的文件系统组成的 PHPUnit 测试套件的上下文中的位置,是否有约定?

有没有办法(例如,PHPUnit 在运行测试时定义的常量)可以从单元测试中访问这样的模拟目录,而不必指定其确切位置,即相对于当前测试套件的路径?还是我只是使用并编写一个绝对路径?dirname(__FILE__)

php 单元测试 测试 phpunit

评论


答:

15赞 Gordon 3/26/2010 #1

由于资源加载程序在目录中查找文件,并且您希望测试加载程序与这些目录的正确交互,因此应该模拟文件系统。如果使用真实目录进行测试,则可能会对这些目录进行外部更改,这可能会影响测试结果。使用 vfs 的速度也快得多

评论

0赞 rudolfbyker 11/8/2019
我一定在这里遗漏了什么。您发布的链接显示了如何创建一个空的虚拟文件系统,并提供了使用 和 的示例,但听起来 OP 正在询问如何随测试一起发布模拟文件,这些文件将可供测试代码读取。(这就是我要做的,希望我没有误解OP的问题。mkdirrmdir