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之外工作吗?因为在您的测试中,您调用的方法好像是静态的,但是这些方法并不是真正的静态的。您的代码现在似乎有问题?