DbUnit の 1.1.2 (stable)を pyrus 経由でインストールしても何故か Git に上がっている 1.1.2 とは違う模様。 原因は static メソッドの中で$this を呼んでるからとのこと。 Method can’t be static since it needs to fetch the current connection vi… · fce1b25 · christeredvartsen/dbunit それより問題は pear のレポジトリに反映してないこと。 何でなんでしょう?とりあえず手動で直して問題なかった。 PHPUnit Manual の第 8 章 データベースのテスト #テーブルの行数のアサーションで”テストツール用として、Database Extension ではいくつかのアサーションを提供しています。 これらを使えば、データベースやテーブルの現在の状態 そしてテーブルの行数を検証できます。この節では、 これらの機能の詳細を説明します。”とありつつもassertEqualsを使って説明してる。(原文もそうなってる) マニュアルにあるサンプルはこんな感じ
class GuestbookTest extends PHPUnit_Extensions_Database_TestCase
{
public function testAddEntry()
{
$this->assertEquals(2, $this->getConnection()->getRowCount('guestbook'), "事前条件");
$guestbook = new Guestbook();
$guestbook->addEntry("suzy", "Hello world!");
$this->assertEquals(3, $this->getConnection()->getRowCount('guestbook'), "追加に失敗");
}
}
なので、上のよりも”assertTableRowCount”修正後は
class GuestbookTest extends PHPUnit_Extensions_Database_TestCase
{
public function testAddEntry()
{
$this->assertTableRowCount('guestbook', 2, "事前条件");
$guestbook = new Guestbook();
$guestbook->addEntry("suzy", "Hello world!");
$this->assertTableRowCount('guestbook', 3, "追加に失敗");
}
}
の方が簡単に書けるのかもしれない。 christeredvartsen/dbunit PHPUnit PEAR Channel