php – 在Laravel中测试,setUp&tearDown不会rollBack我的数
发布时间:2020-12-14 19:44:57 所属栏目:大数据 来源:网络整理
导读:我在Laravel测试中有这种疲惫的行为.让我告诉你我的测试. ?php class MatchesControllerTest extends TestCase{ public function setUp() { parent::setUp(); DB::beginTransaction(); } public function tearDown() { DB::rollBack(); } public function te
|
我在Laravel测试中有这种疲惫的行为.让我告诉你我的测试.
<?php
class MatchesControllerTest extends TestCase
{
public function setUp()
{
parent::setUp();
DB::beginTransaction();
}
public function tearDown()
{
DB::rollBack();
}
public function testForFun()
{
$title = 'Yay Great Post';
// "Create" post
Post::create(compact('title'));
$crawler = $this->client->request('GET','posts');
$this->assertEquals(
1,count($crawler->filter("body:contains('{$title}')")),"Expected to see the text '{$title}' within a body element."
);
}
}
理想情况下,测试应该在测试结束时创建一行并删除但是没有发生,我还应该做些什么.我知道当发生一些意外的异常但是我故意在最后调用它时会调用回滚,这不应该像我们认为的那样工作吗?
至少在Laravel 5中,您可以添加DatabaseMigrations特征:
use IlluminateFoundationTestingDatabaseMigrations;
class MatchesControllerTest extends TestCase {
use DatabaseMigrations;
public function testForFun() {
// your test..
}
}
该特性创建并删除您在migrations中为测试而定义的数据库表.更多关于Laravel testing documentation的特征 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
