小编MrA*_*dre的帖子

Laravel phpunit测试获取参数

我正在为我的控制器编写一些测试,但我的一个测试不起作用.它倾向于搜索并将结果返回到页面.但它实际上是重定向到主页.这是我的代码:

use DatabaseMigrations;
protected $user;
public function setUp()
{
    parent::setUp();

    $this->seed();

    $this->user = factory(User::class)->create(['role_id' => 3]);
}

/** @test */
public function test_manage_search_user()
{
    $response = $this->followingRedirects()->actingAs($this->user)->get('/manage/users/search', [
        'choices' => 'username',
        'search' => $this->user->username,
    ]);

    $response->assertViewIs('manage.users');
    $response->assertSuccessful();
    $response->assertSee($this->user->email);
}
Run Code Online (Sandbox Code Playgroud)

您应该使其工作的URL如下所示:

http://localhost/manage/users/search?choices=username&search=Test
Run Code Online (Sandbox Code Playgroud)

我再次检查,看起来它没有在带有get请求参数中给出.我怎样才能解决这个问题?

php phpunit laravel

10
推荐指数
3
解决办法
7999
查看次数

Laravel phpunit assertViewHas 与预期的测试数据不匹配

我正在为我的搜索方法编写测试,但目前有一个 assertSee 并希望将其更改为 assertViewHas 以获得更好的测试结果。但是我从搜索方法中得到的数据并不想与我期望的数据相匹配。

这是我设置的地方$user

protected $user;

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

    $this->seed();

    $this->user = factory(User::class)->create(['role_id' => 3]);
}
Run Code Online (Sandbox Code Playgroud)

这就是我要断言的地方:

$response = $this->followingRedirects()->actingAs($this->user)->get('/manage/users/search?choices=username&search='.$this->user->username.'');

$response->assertViewIs('manage.users');
$response->assertSuccessful();
$response->assertViewHas('users', $this->user);
Run Code Online (Sandbox Code Playgroud)

这是它将从控制器返回的数据:

$result = User::where('username', 'LIKE', '%'. $request->get('search') .'%')
                ->orderBy('username', 'asc')->paginate(20);
return view('manage.users')->with('users', $result);
Run Code Online (Sandbox Code Playgroud)

我在获取匹配数据时做错了什么?

php phpunit laravel

5
推荐指数
1
解决办法
3655
查看次数

Laravel 黄昏“没有执行测试!”

我正在尝试运行我用 laravel dusk 做的测试,但是当我运行命令 php artisan dusk 时,我收到消息说他找不到我用 php artisan dusk:make 做的任何测试。这是我的一项测试的代码:

<?php

namespace Tests\Browser\Pages\Auth;

use Tests\DuskTestCase;
use Laravel\Dusk\Browser;
use \App\Models\User;
use Illuminate\Foundation\Testing\DatabaseMigrations;

class testSignin extends DuskTestCase
{
    use DatabaseMigrations;
    public function setUp()
    {
        parent::setUp();

        $this->seed();
    }
    /**
     * @tests signin
     * @group auth
     * @return void
     */
    public function test_Signin()
    {
        $user = factory(User::class)->create();
        $this->browse(function (Browser $browser) use ($user) {
            $browser->visit('/relation')
                ->assertPathIs('/signin')
                ->type('login', $user->username)
                ->type('password', $user->password)
                ->press('Inloggen')
                ->assertPathIs('/relation');
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码到底有什么问题,他找不到我的测试?

php laravel

1
推荐指数
1
解决办法
1420
查看次数

标签 统计

laravel ×3

php ×3

phpunit ×2