加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony2中数据库测试的实践?如何分离?

发布时间:2020-12-13 13:58:42 所属栏目:PHP教程 来源:网络整理
导读:目前测试与Symfony2数据库交互的最佳做法是什么?我有一个简单的CRUD设置,我想确保我的测试是可以的.现在,我有4个测试,每个测试,确保创建,更新,删除和列表操作正在发生. 我有两个魔术方法__construct和__destruct,在我的测试用例上.在他们之中,我用“php app
目前测试与Symfony2数据库交互的最佳做法是什么?我有一个简单的CRUD设置,我想确保我的测试是可以的.现在,我有4个测试,每个测试,确保创建,更新,删除和列表操作正在发生.

我有两个魔术方法__construct和__destruct,在我的测试用例上.在他们之中,我用“php app / console …”来调用exec(),以便创建数据库,创建模式并稍后删除数据库.但是,这是一个很慢的地狱,它发生在我有一个以上的测试用例.

在数据库测试和隔离这样的测试时,我应该如何进行?

数据库测试总是很慢,因为您需要在每个测试之前/之后创建/删除模式.为避免不必要的操作,您可以:

在’setUpBeforeClass’方法中创建模式;
>确保您的4个测试在一个线程中使用’@depend’注释启动;
在’tearDownAfterClass’方法中拖放模式.

对于您的测试用例,该模式将仅被创建/删除一次.

您还可以设置原则来使用一个内存sqlite数据库(这是非常快的):

doctrine:
    dbal:
        driver: pdo_sqlite
        path: :memory:
        memory: true

无论如何,’_construct’和’_destruct’不应该在phpunit测试用例中使用,而应该使用’setUp’和’tearDown’.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读