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 を追加しましたか?

vendor/codeception/src/Codeception/Module/Db.php を確認してください。_after() または codeception のティアダウン メソッドは、Db をクリーンアップしません。クリーンアップは _before() で行われ、SQL が実行されます。

于 2013-10-09T15:05:51.083 に答える