测试tinymvc

时间:2012-10-12 11:48:09

标签: php

考虑一个名为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次异常。

请帮我成功运行测试。

1 个答案:

答案 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的衍生物。