為什么“test_indicador_descuadre_eerr”中的功能測驗回傳狀態碼 200 而不是 500?
如果我直接在瀏覽器中測驗,我會得到狀態碼 500。
我強制將 dd() 錯誤添加到服務代碼中。
這怎么可能?這是測驗通過的代碼,無論瀏覽器是否獲得狀態代碼 500。
<?php
namespace Feature;
use App\User;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
class DashboadTest extends TestCase
{
public function test_indicador_descuadre_eerr()
{
$user = factory(User::class)->create();
$holding_id = 0;
$cliente_id = 0;
$periodo = 2022;
$response = $this->actingAs($user)
->getJson('/dt-ajax/descuadre-eerr?holding_id=' . $holding_id . '&cliente_id=' . $cliente_id . '&periodo=' . $periodo)
->assertStatus(200);
}
}

uj5u.com熱心網友回復:
dd()是一個將資料轉儲到螢屏的 Symfony 函式。如果您查看函式 ( vendor/symfony/var-dumper/Resources/functions/dump.php) 的代碼:
if (!function_exists('dd')) {
/**
* @return never
*/
function dd(...$vars): void
{
if (!in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && !headers_sent()) {
header('HTTP/1.1 500 Internal Server Error');
}
foreach ($vars as $v) {
VarDumper::dump($v);
}
exit(1);
}
}
您會看到,如果 PHP_SAPI 不包含clior phpdbg,就像測驗包一樣,它將回傳 500 Internal Server Error 狀態。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/516732.html
標籤:php拉拉维尔测试
