0

クラス登録とテストを作成しました。

$this->open('/');

    if($this->isTextPresent('logout'))
        $this->clickAndWait('link=logout');
    $this->clickAndWait('link=reg');
    $this->assertElementPresent('id=user-reg-form');                
    $this->type('name=User[login]','root111');
    $this->click("//input[@value='Submit']");
    $this->isTextPresent('cannot be blank.');
    $this->type('name=User[pswd]','ll111');
    $this->click("//input[@value='Submit']");
    $this->isTextPresent('cannot be blank.');    
    $this->type('name=User[email]','1a1111@gmail.com');
    $this->click("//input[@value='Submit']");
    $this->waitForTextPresent('logout');
    $this->clickAndWait('link=logout');
    $this->waitForTextPresent('reg');
    $this->clickAndWait('link=reg');

そして、WebTestCase.php で tearDown() を設定して、新しいレコードを削除します。

  //delete test user record
  $exe = Yii::app()->db->createCommand();
  $exe->delete('{{user}}', 'id > :id', array(':id'=>5));
  $exe->execute();

テストは必要に応じて実行されますが、記録は削除されません。なんで?このバグを修正するにはどうすればよいですか? terDownAfterClass() を使用してみましたが、結果は同じです。

4

1 に答える 1

0

別の方法を試してください。たとえば、属性でモデルを見つけて(あなたはそれらを知っています)、それを削除します。

User::model()->deleteAllByAttributes(array(
    'email' => '1a1111@gmail.com',
));
于 2013-06-24T19:20:39.500 に答える