首页后端开发PHPlaravel中怎么进行数据库测试,要注意什么

laravel中怎么进行数据库测试,要注意什么

时间2024-03-24 16:54:03发布访客分类PHP浏览318
导读:这篇文章给大家分享的是“laravel中怎么进行数据库测试,要注意什么”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“laravel中怎么进行数据库测试,要注意什么”吧。...
这篇文章给大家分享的是“laravel中怎么进行数据库测试,要注意什么”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“laravel中怎么进行数据库测试,要注意什么”吧。

相对于其它测试,数据库测试可以说是相对复杂繁琐的,因为数据库测试不可避免地会涉及到数据库的增删改查,而这些操作会影响数据库的数据,而我们测试最忌讳的就是修改了数据的测试,因为这样的话下次测试的时候,可能测试结果就会发生改变。

庆幸的是,laravel为我们提供了非常简洁的数据库测试方法,而且不会影响原数据。

use DatabaseMigrations

通过使用转移表,我们可以对数据进行。不过这就要求我们的数据是通过migration来生成的,如果直接在数据库创建的话,我们进行测试的时候就会提示:

SQLSTATE[HY000]: General error: 1 no such table: exchange_code

我们可以看下DatabaseMigrations的源码,可以看到它是trait,它会在执行测试之前

migrate:fresh

执行测试之后

migrate:rollback

这样的话就保证我们对数据库的操作都会进行回滚。

注意事项

这里的migrate:fresh 会删除掉所有表,然后重建数据.

use RefreshDatabase

这种方式回去判断是否是内存数据测试,如果是的话,因为是在内存操作,不影响数据库。

如果是mysql等数据库,它会启用事务,也就是我们测试的数据不会真的提交,测试完毕后,进行回滚,然后提交,也就是相当于我们对数据库什么也没做。

测试数据库的时候,我们都是使用工厂进行创建数据,否则你会发现即使数据库有数据,也是空的。

public function testGet()
 {
    
  factory(Exchange::class)->
    create();
    

  $exchange = Exchange::select('code')->
    where('status', 0)->
    first();
    
  $code = $exchange->
    code;
    

  $this->
    assertDatabaseHas('exchange_code', [
   'code' =>
     $code,
  ]);

 }
    

到此这篇关于“laravel中怎么进行数据库测试,要注意什么”的文章就介绍到这了,感谢各位的阅读,更多相关laravel中怎么进行数据库测试,要注意什么内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: laravel中怎么进行数据库测试,要注意什么
本文地址: https://pptw.com/jishu/652192.html
MySQL 索引有什么用?匹配方式有哪些? MySQL中十个常用的字符串函数你了解多少?

游客 回复需填写必要信息