1

次のコードがあります。

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 回目の実行で失敗します。

なぜそれが起こるのか分かりますか?

4

0 に答える 0