Nov 5, 2015
0
Level 1
Request in test
In my test I created a method to insert a new user.
<?php
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
class UserTest extends TestCase
{
use DatabaseMigrations;
use WithoutMiddleware;
public function testUserCreateFromArray()
{
$data = $this->getData();
$this->post('/user', $data)
->seeJsonEquals(['created' => true]);
}
public function getData()
{
$data = [
'name' => 'joe',
'email' => 'joe@doe.com',
'password' => '12345678'
];
return $data;
}
}
Created on my controller , runs perfect.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Models\User;
use App\Http\Requests\CreateUserRequest;
class UserController extends Controller
{
public function index()
{
return User::all();//
}
public function create()
{
return view('user');
}
public function store(Request $request)
{
User::create($request->all());
return ['created' => true];
}
But to create a custom Request begin to fail the test.
Change this line in UserController.php
public function store(CreateUserRequest $request)
{
User::create($request->all());
return ['created' => true];
}
Test show me this error
- UserTest::testUserCreateFromArray ErrorException: Invalid argument supplied for foreach()
Any help, thank you.
Please or to participate in this conversation.