为什么运行http测试时会有多个断言?

时间:2019-07-09 08:13:40

标签: php laravel phpunit

鉴于以下测试,为什么我会收到预期的1个测试的结果,但有2个都通过的断言?

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ConvertALeadTest extends TestCase
{
    /** @test */
    public function a_user_can_view_a_convert_page()
    {
        $response = $this->get('/');

        $response->assertRedirect('login');
    }
}

1 个答案:

答案 0 :(得分:2)

因为assertRedirect函数有两个断言。一个检查请求是否返回了重定向代码,另一个检查结束位置是否正确。

public function assertRedirect($uri = null)
{
    PHPUnit::assertTrue(
        $this->isRedirect(), 'Response status code ['.$this->getStatusCode().'] is not a redirect status code.'
    );

    if (! is_null($uri)) {
        $this->assertLocation($uri);
    }

    return $this;
}