发布话题 一系列的报错

开始使用

$ phpunit
bash: phpunit: command not found

报错,然后使用

$ vendor/bin/phpunit
PHPUnit 6.5.13 by Sebastian Bergmann and contributors.

.F.                                                                 3 / 3 (100%)

Time: 876 ms, Memory: 22.00MB

There was 1 failure:

1) Tests\Feature\TopicApiTest::testStoreTopic
Expected status code 201 but received 404.
Failed asserting that false is true.

E:\Wamp\www\vance\laravel-china.org\larabbs\vendor\laravel\framework\src\Illuminate\Foundation\Testing\TestResponse.php:78
E:\Wamp\www\vance\laravel-china.org\larabbs\tests\Feature\TopicApiTest.php:38

FAILURES!
Tests: 3, Assertions: 3, Failures: 1.

继续报错,直接打印

$response = $this->JWTActingAs($this->user)->json('POST', '/api/topics', $data);
dd($response);
 +original: array:3 [
      "message" => "404 Not Found"
      "status_code" => 404
      "debug" => array:4 [
        "line" => 179
        "file" => "E:\Wamp\www\vance\laravel-china.org\larabbs\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php"
        "class" => "Symfony\Component\HttpKernel\Exception\NotFoundHttpException"
        "trace" => array:43 [
          0 => "#0 E:\Wamp\www\vance\laravel-china.org\larabbs\vendor\laravel\framework\src\Illuminate\Routing\Router.php(612): Illuminate\Routing\RouteCollection->match(Object(Dingo\Api\Http\Request))"
          1 => "#1 E:\Wamp\www\vance\laravel-china.org\larabbs\vendor\laravel\framework\src\Illuminate\Routing\Router.php(601): Illuminate\Routing\Router->findRoute(Object(Dingo\Api\Http\Request))"
          2 => "#2 E:\Wamp\www\vance\laravel-china.org\larabbs\vendor\laravel\framework\src\Illuminate\Routing\Router.php(590): Illuminate\Routing\Router->dispatchToRoute(Object(Dingo\Api\Http\Request))"
          3 => "#3 E:\Wamp\www\vance\laravel-china.org\larabbs\vendor\dingo\api\src\Routing\Adapter\Laravel.php(81): Illuminate\Routing\Router->dispatch(Object(Dingo\Api\Http\Request))"
          4 => "#4 E:\Wamp\www\vance\laravel-china.org\larabbs\vendor\dingo\api\src\Routing\Router.php(512): Dingo\Api\Routing\Adapter\Laravel->dispatch(Object(Dingo\Api\Http\Request), 'v1')"
          5 => "#5 E:\Wamp\www\vance\laravel-china.org\larabbs\vendor\dingo\api\src\Http\Middleware\Request.php(126): Dingo\Api\Routing\Router->dispatch(Object(Dingo\Api\Http\Request))"

/api/topics路由也是有用的,但是为什么报错啊
求大佬

vance
vance
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4
liyu001989

期望的是 201 ,返回的是 404,检查代码呗

5年前 评论
vance

@liyu001989 检查了好几遍,和教程的一样,就是在json这个位置错误
ActingJWTUser.php

<?php

namespace Tests\Traits;

use App\Models\User;

trait ActingJWTUser
{
    public function JWTActingAs(User $user)
    {
        $token = \Auth::guard('api')->fromUser($user);
        $this->withHeaders(['Authorization' => 'Bearer '.$token]);

        return $this;
    }
}

TopicApiTest.php

<?php

namespace Tests\Feature;

use App\Models\User;
use App\Models\Topic;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\Traits\ActingJWTUser;

class TopicApiTest extends TestCase
{
    use ActingJWTUser;

    protected $user;

    public function setUp()
    {
        parent::setUp();

        $this->user = factory(User::class)->create();
    }

    public function testStoreTopic()
    {
        $data = ['category_id' => 1, 'body' => 'test body', 'title' => 'test title'];

        $response = $this->JWTActingAs($this->user)->json('POST', '/api/topics', $data);

        $assertData = [
            'category_id' => 1,
            'user_id' => $this->user->id,
            'title' => 'test title',
            'body' => clean('test body', 'user_topic_body'),
        ];

        $response->assertStatus(201)->assertJsonFragment($assertData);
    }
}
5年前 评论
vance

@liyu001989 我的larabbs还是5.5的,这个对这个教程的5.7有没有什么影响啊!

5年前 评论
liyu001989

你可以下载项目源码对比一下,没有影响,而且教程可以切换版本

file

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!