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

Pek*_*ica 12 php testing phpunit unit-testing

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

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

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

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

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

Gor*_*don 15

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