我还是单元测试的新手,特别是PHPUnit作为测试框架。
假设我正在为资源加载器类构建单元测试。该类查找要在两个目录(全局和特定于用户的目录)中加载的资源。
要测试该类,我想设置一个包含一些资源文件的模拟测试目录。我想将模拟目录放在测试套件中的某个位置(该套件是将被分发的Web应用程序的一部分。)
是否存在将此测试目录放在使用文档系统组成的PHPUnit测试套件上下文中的位置的约定here?
有没有办法(例如PHPUnit在运行测试时定义的常量)从单元测试中访问这样的模拟目录而不必指定其确切位置,即相对于当前测试套件的路径?或者我只是使用dirname(__FILE__)
并构成一个绝对路径?
答案 0 :(得分:15)
由于资源加载器在目录中查找文件,并且您想测试加载器与这些目录的正确交互,因此您应该mock the filesystem。如果您使用真实目录进行测试,则可能会对可能影响测试结果的这些目录进行外部更改。使用vfs也更多更快。