我一直在用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' ) );
}
}
答案 0 :(得分:3)
你是否在unit.suite.yml中添加了populate:true和cleanup:true?
检查vendor / codeception / src / Codeception / Module / Db.php。 _after()或代码中的拆解方法不会清除Db。清理在_before()中完成,然后执行sql。