私は自分の検索方法のテストを書いていますが、現在assertSeeを持っていて、より良いテスト結果のためにassertViewHasに変更したいと思います。しかし、私が検索方法から得たデータは、私が期待しているデータと一致したくない。Laravel phpunit assertViewHasが期待されるテストデータと一致しません
私は$user
を設定する場所です:
protected $user;
public function setUp()
{
parent::setUp();
$this->seed();
$this->user = factory(User::class)->create(['role_id' => 3]);
}
私が主張作ってるところです:
$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);
をそして、これは、それがコントローラから返されたデータである。
$result = User::where('username', 'LIKE', '%'. $request->get('search') .'%')
->orderBy('username', 'asc')->paginate(20);
return view('manage.users')->with('users', $result);
一致するデータを取得するにはどうしたらよいですか?
ビューに '$ this-> user'にマッチする' $ users'変数があることをアサートしようとしています。しかし、 '$ users'は' LengthAwarePaginator'のインスタンスです( 'paginate()'を使っているため)。 '$ this-> user'はおそらく' User'モデルのインスタンスです。 – Camilo
あなたはその解決策を知っていますか? – MrAndre
テストで '$ this-> user'をどのように定義していますか?あなたの質問にそれを加えてください。 – Camilo