PHPUnit:调用未定义的方法

PHPUnit:调用未定义的方法,phpunit,Phpunit,我想运行简单的播放器插入测试 我的代码是这样的: class Player{ public $id; public $name; } class PlayerDAO{ //db stuff ..... privatefunction input($player){ $player->id = mysql_real_escape_string($player->id); $player->name = mysql_real

我想运行简单的播放器插入测试

我的代码是这样的:

class Player{
    public $id;
    public $name;
}
class PlayerDAO{
   //db stuff
   .....
   privatefunction input($player){
      $player->id = mysql_real_escape_string($player->id);
      $player->name = mysql_real_escape_string($player->name);
      return $player;
   }
   public function insert($player){
      $player = $this->input($player);
      mysql_query("INSERT INTO player (name) VALUES ('.$player->name.')");
   }
   public function countPlayers(){
      $r = mysql_query("SELECT * FROM player");

      return mysql_num_rows($r);
   }
}
 //Test class
class PlayerTest extends PHPUnit_Framework_TestCase {
   public function testInsert(){
   $player = new Player();
   $player->name = 'Test name';

   $count1 = PlayerDAO::countPlayers();
   PlayerDAO::insert($player);
   $count2 = PlayerDAO::countPlayers();
   $this->assertEquals(($count2-$count1), 1);

   }
}

若我运行测试,我会得到错误消息:致命错误:调用…PlayerTest.php中未定义的方法PlayerTest::input()。如果我从insert()方法中删除方法input(),错误消息就会消失。

好的,我找到了解决方案。我必须在测试类设置方法中初始化PlayerDAO方法。您的代码在unittest之外工作吗?因为在您的测试中,您调用的方法好像是静态的,但是这些方法并不是真正的静态的。您的代码现在似乎有问题?