这是我的目录结构
application
---modules
------admin
---------models
-----------User.php
这是我的用户模型类
class admin_Model_User
{
//User.php
}
这是我的 UserTest 类,带有简单的 AssertType
class admin_Model_UserTest
extends PHPUnit_Framework_TestCase
{
public function testUserModel()
{
$testUser = new admin_Model_User();
$this->assertType("admin_Model_User",$testUser);
}
}
当我运行这个时。我收到以下错误
[tests]# phpunit
PHPUnit 3.5.13 by Sebastian Bergmann.
0
Fatal error: Class 'admin_Model_User' not found in /web/zendbase/tests/application/modules/admin/models/UserTest.php on line 18
我知道我一定有一些路径设置。我真的无法弄清楚到底出了什么问题。寻求帮助......
您需要在项目的 PHPUnit bootstrap.php 文件中引导 Zend。即使您正在测试模型,因此不需要调度程序,您仍然必须拥有Zend_Application
load application.ini
并注册其自动加载器。
您可以使用Zend_Test_PHPUnit_ControllerTestCase
相反,进行引导并确保模型测试在其中之一之后运行,但这有点棘手。
另一种选择是require_once
为每个测试手动分类模型。这不能通过 PHPUnit 的自动加载器自动工作的原因是它不知道如何转换“命名空间”admin_Model
进入路径admin/models
.
最后,你可以写一个简单的自动装载机 http://php.net/manual/en/language.oop5.autoload.php替换 PHPUnit 中的那个。在将下划线转换为斜杠之前,请检查类是否以上面的“命名空间”开头,如果是则替换它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)