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

前端之家收集整理的这篇文章主要介绍了php – Symfony2中数据库测试的实践?如何分离?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前测试与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’.

原文链接:https://www.f2er.com/php/139399.html

猜你在找的PHP相关文章