我正在为我的控制器编写一些测试,但我的一个测试不起作用.它倾向于搜索并将结果返回到页面.但它实际上是重定向到主页.这是我的代码:
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请求的参数中给出.我怎样才能解决这个问题?
我正在为我的搜索方法编写测试,但目前有一个 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)
我在获取匹配数据时做错了什么?
我正在尝试运行我用 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)
我的代码到底有什么问题,他找不到我的测试?