Codeception:清理数据库中的测试数据

时间:2013-09-24 09:45:54

标签: php unit-testing codeception

我一直在用Codeception编写一些单元测试,我的数据库已经过了测试数据。在阅读文档时,我发现它说:

  

每次测试后都会清理并填充数据库

有人知道yaml文件中是否有任何内容,或者我需要在拆除方法中添加什么内容?

这是我的测试:

use Codeception\Util\Stub;

class peopleAdminTest extends \Codeception\TestCase\Test
{
   /**
    * @var \CodeGuy
    */
    protected $codeGuy;

    /**
     * @var the model object
     */
    private $_model;

    /**
     * @var some mock data
     */
    private $_data = array( "people" => array( "title" => "Unit Test Data" ) );

    protected function _before()
    {
        $this->_model = new People_model();
    }

    public function test_instantiation()
    {
        $this->assertInstanceOf( 'people_model', $this->_model );
    }

    public function test_save()
    {
        $this->_model->save( $this->_data[ 'people' ] );
        $this->codeGuy->seeInDatabase( 'pegisis_people', array( 'title' => 'Unit Test Data' ) );
    }
}

1 个答案:

答案 0 :(得分:3)

你是否在unit.suite.yml中添加了populate:true和cleanup:true?

检查vendor / codeception / src / Codeception / Module / Db.php。 _after()或代码中的拆解方法不会清除Db。清理在_before()中完成,然后执行sql。