预期状态码 200 但收到 302

Posted

技术标签:

【中文标题】预期状态码 200 但收到 302【英文标题】:Expected status code 200 but received 302 【发布时间】:2018-11-26 11:59:55 【问题描述】:

我正在尝试执行测试以检查是否

1 - 用户已通过身份验证

2 - 有权查看请求的页面

每次我运行测试时都会收到此错误

预期状态码 200,但收到 302。

namespace Tests\Feature\Category;

class CategoryTest extends TestCase

use RefreshDatabase;

/** @test */
public function it_can_see_all_categories()

    $user = $this->signedIn();

    $permission = Permission::create(['group' => 'categories' , 'name' => 'view categories' , 'label' => 'view categories']);

    $role = Role::find($user->role_id);

    $role->givePermissionTo($permission);

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

    $response->assertStatus(200 , $response->getStatusCode());
  

我的控制器

<?php
namespace App\Http\Controllers\Category;

class CategoriesController extends Controller   

protected $categRepo;

/**
 * Initializing Categories Repository
 */

public function __construct(CategoryRepository $categRepo)

    $this->categRepo = $categRepo;


/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index(ManageCategoryRequest $request)

    $categories = $this->categRepo->getPaginated(25);
    return view('categories.index' , compact('categories'));

     

这是我的请求授权请求

<?php

class ManageCategoryRequest extends FormRequest

     public function authorize()
         
    return $this->user()->can('view categories');
 


【问题讨论】:

闻起来像重定向。你能分享整个$response,包括标题。 请检查我的更新.. 我不认为这是一个错误,只是你的测试被破坏了(不稳定)。重写代码,直到应用程序与测试要求相匹配,或者如果要求发生变化则更改测试(如果代码正常,您需要期待 302 状态代码而不是 200 状态代码)。您测试的代码是否良好尚未在问题中指定,因此很难给出更清晰的指导。我看不到测试断言用户已通过身份验证。 【参考方案1】:

可能没有登录!看着signedIn

【讨论】:

以上是关于预期状态码 200 但收到 302的主要内容,如果未能解决你的问题,请参考以下文章

HTTP常见状态码 200 301 302 404 500

转载 HTTP常见状态码分析 200 301 302 404 500

HTTP 状态消息 200 302 304 403 404 500 分别表示啥?

网页状态码为:200,是啥意思

状态码

http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码