错误:调用未定义的方法 Tests\Unit\SomeTest::assertStatus()

Posted

技术标签:

【中文标题】错误:调用未定义的方法 Tests\\Unit\\SomeTest::assertStatus()【英文标题】:Error: Call to undefined method Tests\Unit\SomeTest::assertStatus()错误:调用未定义的方法 Tests\Unit\SomeTest::assertStatus() 【发布时间】:2020-03-23 05:50:34 【问题描述】:

我写了测试:

$response = $this->get('/something');
$response->assertStatus(200);

显示此错误:

Error: Call to undefined method Tests\Unit\SomeTest::assertStatus()

我找到了解决问题的方法(代码如下),但我想使用第一种方法:

  $response = $this->get('/something');

  $this->assertEquals(200, $this->response->status());

为什么第一个代码不起作用?

【问题讨论】:

您的ExampleTest::class 是否扩展了基础TestCase::class 是的。看起来像这样class ExampleTest extends TestCase 好的,你使用的是 Laravel 还是基于 Laravel 的微框架 Lumen?如果是前者,你使用的是哪个版本的 Laravel? 我使用 Laravel 5.8 有多个名为TestCase的类是哪一个? 【参考方案1】:

使用以下代码:

namespace Tests\Unit;
use Tests\TestCase;

class SampleTest extends TestCase

  //your code


【讨论】:

【参考方案2】:

我通过将use phpUnit\Framework\TestCase 更改为use Tests\TestCase 解决了这个问题。

【讨论】:

【参考方案3】:

在新的Laravel 项目中,您应该使用以下TestCase

use Tests\TestCase;

class ControllerTest extends TestCase

【讨论】:

以上是关于错误:调用未定义的方法 Tests\Unit\SomeTest::assertStatus()的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:未捕获的错误:调用未定义的方法 Connection::prepare() [重复]

错误:调用未定义的方法 Tests\Unit\SomeTest::assertStatus()

fullCalendar - 未捕获的类型错误:无法调用未定义的方法“拆分”

chrome.tabs.create 给出错误 - “未捕获的类型错误:无法调用未定义的方法‘create’”

Laravel FFmpeg 错误调用未定义的方法 FFMpeg\FFMpeg::fromDisk()

如何捕获PHP 7中的“调用未定义的方法”错误?