如何用phpunit在yii中设置方法tearDown()?

时间:2013-06-22 17:20:28

标签: testing yii phpunit selenium-rc

我为它编写了一个类注册和测试。

$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(),但结果是一样的。

1 个答案:

答案 0 :(得分:0)

尝试另一种方式。例如,按属性查找模型(您知道它们)并删除它。

User::model()->deleteAllByAttributes(array(
    'email' => '1a1111@gmail.com',
));