次のコードがあります。
class ProfileTest extends PHPUnit_Framework_TestCase
{
protected static $nLastProfileId;
public static function setUpBeforeClass()
{
self::$nLastProfileId = 0;
}
public function testCreateProfile()
{
self::$nLastProfileId = profile_create("TestProfileCreation123");
$this->assertGreaterThanOrEqual(1, self::$nLastProfileId);
}
/**
* @expectedException PDOException
*/
public function testThatThereCanNotBeTwoProfilesWithTheSameName()
{
profile_create("TestProfileCreation123");
}
public static function tearDownAfterClass()
{
profile_delete(self::$nLastProfileId);
}
}
profile_create
プロファイルをデータベースに追加profile_delete
し、ID に基づいてそのプロファイルをデータベースから削除します。2 つのプロファイルに同じ名前を付けることはできません。
私が抱えている問題は、testThatThereCanNotBeTwoProfilesWithTheSameName()
コメントが付けられている場合、テストユニットが正しく機能することです。データベースに新しいエントリを作成し、最後にそれを削除します。その関数のコメントを外すと、データベース内のエントリが削除されないため、テスト ユニットは 2 回目の実行で失敗します。
なぜそれが起こるのか分かりますか?