考虑一个名为user的控制器,其代码如下
class User_Controller extends TinyMVC_Controller
{
function index()
{
$oUserEntity = new User_Entity_Model();
$oUserEntity->guid = 1;
$oUserEntity->name = 'aaaaaa';
$oUserEntity->username = 'aaaaaaa';
$oUserEntity->password = 'newnew';
$oUserEntity->email = 'aaaaaa@gmail.com';
$oUserEntity->language = 'en';
$oUserEntity->code = 'xyz';
$oUserEntity->save();
}
}
?>
及其对应的模型名为user_entity_model.php,
<?php
class User_Entity_Model extends Entity_Model
{
/* some code..*/
public function save() {
// Save generic stuff
if (!parent::save()) {
return false;
}
// Now save specific stuff
return $this->create_user_entity($this->get('guid'), $this->get('name'), $this->get('username'),
$this->get('password'), $this->get('email'), $this->get('language'), $this->get('code'));
}
public function create_user_entity($guid, $name, $username, $password,$email, $language, $code) {
global $CONFIG;
$guid = (int)$guid;
$query = "INSERT into users_entity
(guid, name, username, password, sapcode, salt, email, language, code) values ($guid, '$name', '$username', '$password', '$email', '$language', '$code')";
$result = $this->db->query($query);
return $guid;
}
}
我使用simpletest来测试代码。因此,为了测试函数save(),我创建了tests文件夹和测试文件userEntityTest.php
class userEntityTest extends UnitTestCase
{
function testSave(){
$oUserEntity = new User_Entity_Model();
$oUserEntity->guid = 1;
$oUserEntity->name = 'aaaa';
$oUserEntity->username = 'aaaa';
$oUserEntity->password = 'newnew';
$oUserEntity->email = 'cool123@gmail.com';
$oUserEntity->language = 'en';
$oUserEntity->code = 'xyz';
$guid = $oUserEntity->save();
$cp = new UnitTestCase();
$cp->AssertNotEqual($guid, 0);
}
}
我在浏览器中执行测试时出现以下错误
(!)致命错误:第3行的C:\ wamp \ www \ career portal \ tinymvc \ myapp \ models \ user_entity_model.php中找不到类'Entity_Model'
userEntityTest.php 失败: - &gt; Bad TestSuite [userEntityTest.php]错误[[userEntityTest.php]中没有可运行的测试用例] 0/0测试用例完成:0次通过,1次失败,0次异常。
请帮我成功运行测试。
答案 0 :(得分:0)
我认为命名测试模块userEntityTest.php
是错误的,因为此框架可能会出现'_model'后缀。请参阅黄色方框,注意这里http://www.tinymvc.com/documentation/index.php/Documentation:Models#ynote此外,您的问题(我想,在测试类中限制了可见范围,无法创建用户实体模型的新实例,因为它没有user_entity_model的父类(因为您的模型类似乎不是从TinyMVC_Model派生的,这意味着您的父类可以广泛使用,因此可能无法解决(entity_model)available)。实际上我没有看到你调用测试的地方,但是如果你试图模拟模型的行为,那么就根据所有适当的规则,使你的类成为TinyMVC_Model的衍生物。