2

我一直在用 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' ) );
    }
}
4

1 回答 1

3

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

检查供应商/codeception/src/Codeception/Module/Db.php。_after() 或 codeception 中的 teardown 方法不会清理 Db。清理在 _before() 中完成,然后执行 sql。

于 2013-10-09T15:05:51.083 回答