0

次のコードを持つ 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);
}

}

ブラウザでテストを実行すると、次のエラーが発生しました

( ! ) 致命的なエラー: Class 'Entity_Model' not found in C:\wamp\www\career portal\tinymvc\myapp\models\user_entity_model.php 行 3

userEntityTest.php 失敗: -> 不正な TestSuite [userEntityTest.php] エラー [[userEntityTest.php] に実行可能なテスト ケースがありません] 0/0 テスト ケース完了: 0 パス、1 失敗、0 例外。

テストを正常に実行するのを手伝ってください。

4

1 に答える 1

0

userEntityTest.php'_model' サフィックスはこのフレームワークによって存在する可能性が高いため、テスト モジュールの命名は間違っていると思います。ここに注記のある黄色のボックスを参照してください http://www.tinymvc.com/documentation/index.php/Documentation:Models#ynoteさらに、あなたの問題(これは、新しいモデルクラスがTinyMVC_Modelから派生していないように見えるため、user_entity_model(つまりentity_model)の親クラスがないため、ユーザーエンティティモデルのインスタンスは解決されない場合があります。つまり、親クラスを広く利用できるようにすることはすべてあなた次第です. 実際には、テストを呼び出す場所はわかりませんが、モデルの動作をシミュレートしようとしている場合は、すべての正当なルールに関してクラスを TinyMVC_Model から派生させてください。

于 2012-10-22T21:20:23.930 に答える