gpt4 book ai didi

symfony - 如何使用phpunit在功能测试中使symfony显示异常

转载 作者:行者123 更新时间:2023-12-04 03:00:43 24 4
gpt4 key购买 nike

当我在控制台中使用 PhpUnit 运行单元测试时,所有异常都会立即显示在那里。然而,当我转向功能测试时,我看不到发生的异常。

首先我尝试了 symfony WebTestCase正如所说 here .所以我调用$client有需要的参数,我有回应。但是我花了一些时间才明白这种行为就像我手动打开要测试的页面一样。来自 $client->request 的回复包含文本 (html)。是的,那里显示了错误,但有很多 html,而且很难找到异常。是的,我可以使用 $crawler->filter('.text-exception')->first()->text()但我想让异常像在单元测试中一样可见。当我测试命令时,PhpUnit 和正常情况一样显示异常。

我试图从 web/app_dev.php 复制代码来测试用例。但它是一样的。我只有 html 响应。

那么我怎样才能让 PhpUnit 在功能测试中像单元测试一样显示异常呢?

最佳答案

您可以使用探查器来做到这一点:

$client->enableProfiler();
$client->request('GET', '/');
$profile = $client->getProfile();
$exceptionProfile = $profile->getCollector('exception');

if ($exceptionProfile->hasException()) {
$message = sprintf(
"No exception was expected but got '%s' with message '%s'. Trace:\n%s",
get_class($exceptionProfile->getException()),
$exceptionProfile->getMessage(),
$exceptionProfile->getException()->getTraceAsString()
);
throw new AssertionFailedError($message);
}

关于symfony - 如何使用phpunit在功能测试中使symfony显示异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49469246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com