次のコードを持つ 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 例外。
テストを正常に実行するのを手伝ってください。