【问题标题】: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的类是哪一个?

标签: php laravel phpunit


【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2018-03-22
        • 2019-07-08
        • 2021-09-16
        • 2012-10-29
        • 2012-04-02
        • 1970-01-01
        • 2017-08-03
        • 2020-09-01
        • 1970-01-01
        相关资源
        最近更新 更多