han*_*ock 4 php unit-testing laravel
我现在正在测试我的 Laravel 应用程序并面临下一个问题:我的项目是从一个无框架的 PHP 项目迁移而来的,该项目已经有自己的数据库,所以我没有对大多数 db 数据进行迁移。在测试期间我需要刷新我的数据库,但就我现在而言,当我使用use RefreshDatabase;我的整个数据库时正在刷新(因此表也被删除),所以 laravel 假设我每次都在迁移我的数据库表,我没有做什么。所以问题是:每个新测试是否有可能只刷新记录(我的意思是删除它们),而不是整个数据库?我用谷歌搜索了一下,不幸的是没有找到可能有帮助的东西。提前致谢!
如果您正在使用,Phpunit您可以使用DatabaseTransactions它会将您在测试中添加的内容添加到数据库中,然后将其删除。只需像特征一样使用它。
如果您不想创建测试数据库,可以使用以下简单方法:
<?php
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
{
use DatabaseTransactions;
...
Run Code Online (Sandbox Code Playgroud)
你可以在这里找到它。