SELECT クエリを作成し、見つかった行を返すメソッドをテストしようとしています。データセットが与えられた場合、このメソッドが他のものを返さないことを確認したいと思います。データセットの作成に関するドキュメントはたくさん見つかりましたが、私の場合はそれを使用することについては何も見つかりませんでした...助けてくれてありがとう。
テストする方法は次のとおりです。
class A
{
public static function myMethod()
{
$result = mysql_query("SELECT * FROM user");
[...]
return $rows;
}
}
テストクラスは次のとおりです。
class ATest extends PHPUnit_Extensions_Database_TestCase
{
protected $pdo;
public function __construct()
{
$this->pdo = new PDO('mysql:host=localhost;dbname=db_name',
'login', 'password');
}
public function getConnection()
{
return $this->createDefaultDBConnection($this->pdo, 'db_name');
}
public function getDataSet()
{
return $this->createFlatXMLDataSet('mydataset.xml');
}
public function testMyMethod()
{
$actual = A::myMethod();
$this->assertEquals(array([...]), $actual);
// For this test, I get a mySQL error "No database selected"
// in A::myMethod()!
}
}
mydataset.xml の内容は次のとおりです。
<?xml version="1.0" ?>
<dataset>
<user iduser="1" name="John" />
<user iduser="2" name="James" />
</dataset>