相对uri使用Zend_Test的问题

时间:2010-11-29 16:12:18

标签: unit-testing zend-framework root

我第一次在我的Zend Framework应用程序上设置单元测试(这实际上是我第一次进行单元测试)。

我目前遇到的一个问题是我使用视图助手来包含我的脚本和链接:

class Zend_View_Helper_HeadIncludes extends Zend_View_Helper_Abstract {

    public function headIncludes($type, $folder) {
        if($folder == "full" && APPLICATION_ENV == "production") {
            $folder = "min";            
        }
        $handler = opendir(getenv("DOCUMENT_ROOT") . "/". $type ."/" . $folder);
        while ($file = readdir($handler)) {
            if ($file != "." && $file != "..") {
                if($type == "js") {
                    $this->view->headScript()->appendFile('/js/' . $folder . '/' . $file);  
                } else if ($type == "css" ) {
                    $this->view->headLink()->appendStylesheet('/css/' . $folder . '/' . $file);
                }
            }
        }
        closedir($handler);
    }
}

这包含在每个视图脚本中。当我尝试运行测试时,它失败了,因为opendir()试图找到相对于文档根目录的“/ css / full”,这似乎与测试和应用程序的值不同。解决这个问题的最佳方法是什么?当APPLICATION_ENV =“testing”时,我可以添加一个条件来做一些不同的事情,但我不确定这是否会与设置测试应该达到的目标相反。

1 个答案:

答案 0 :(得分:2)

环境变量'DOCUMENT_ROOT'仅由您的Web服务器设置。您可能希望使用“APPLICATION_PATH”作为参考,因为它在虚拟主机和命令行使用方面更可靠。