如何通过请求phpunit发送一个对象
How to send an object through request phpunit
您好,我是 Laravel 和 PHP 的新手。
这是我的学生模型的控制器
{
public function create(Request $request){
$student = new Student();
$student->fname = $request->fname;
$student->lname = $request->lname;
$student->dob = $request->dob;
$student->address = $request->address;
$student->course = $request->course;
$student->year = $request->year;
$student->save();
return redirect('/');
}
}
这是我写的单元测试,基本上只是把一个对象放在请求中,然后使用我写的控制器实例将它添加到数据库中(我不知道这是不是最好的方法它)。
class AddStudTest extends TestCase
{
use refreshdatabase;
/**
* A basic feature test example.
*
* @return void
*/
public function test_addStud()
{
$test = new Models\Student;
$test->fname = 'Test';
$test->lname ='User';
$test->dob ='2000-04-05';
$test->address ='test address';
$test->course ='BS Tester';
$test->year ='1';
$request = new Request(compact($test));
$testController = new Http\Controllers\StudentController;
$testController->create($request);
$this->assertDatabaseHas('students',[
'fname'=>'Test',
'lname'=>'User',
'dob'=>'2000-04-05',
'address'=>'test address',
'course'=>'BS Tester',
'year'=>'1'
]);
}
}
当我 运行 phpunit 时,它说:
1) App\AddStudTest::test_addStud
Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'fname' cannot be null (SQL: insert into `students` (`fname`, `lname`, `dob`, `address`, `course`, `year`) values (?, ?, ?, ?, ?, ?))
如何让它读取我放入请求中的对象?如果有更好的方法,希望有人能指导我。
我的错!我只需要发送带有键的数组数据,而不仅仅是值。
$test = array('fname'=>'Test','lname'=>'User','dob'=>'2000-04-05','address'=>'test address','course'=>'BS Tester','year'=>'1');
不过,如果有更好的方法,我会很乐意接受。
您好,我是 Laravel 和 PHP 的新手。 这是我的学生模型的控制器
{
public function create(Request $request){
$student = new Student();
$student->fname = $request->fname;
$student->lname = $request->lname;
$student->dob = $request->dob;
$student->address = $request->address;
$student->course = $request->course;
$student->year = $request->year;
$student->save();
return redirect('/');
}
}
这是我写的单元测试,基本上只是把一个对象放在请求中,然后使用我写的控制器实例将它添加到数据库中(我不知道这是不是最好的方法它)。
class AddStudTest extends TestCase
{
use refreshdatabase;
/**
* A basic feature test example.
*
* @return void
*/
public function test_addStud()
{
$test = new Models\Student;
$test->fname = 'Test';
$test->lname ='User';
$test->dob ='2000-04-05';
$test->address ='test address';
$test->course ='BS Tester';
$test->year ='1';
$request = new Request(compact($test));
$testController = new Http\Controllers\StudentController;
$testController->create($request);
$this->assertDatabaseHas('students',[
'fname'=>'Test',
'lname'=>'User',
'dob'=>'2000-04-05',
'address'=>'test address',
'course'=>'BS Tester',
'year'=>'1'
]);
}
}
当我 运行 phpunit 时,它说:
1) App\AddStudTest::test_addStud
Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'fname' cannot be null (SQL: insert into `students` (`fname`, `lname`, `dob`, `address`, `course`, `year`) values (?, ?, ?, ?, ?, ?))
如何让它读取我放入请求中的对象?如果有更好的方法,希望有人能指导我。
我的错!我只需要发送带有键的数组数据,而不仅仅是值。
$test = array('fname'=>'Test','lname'=>'User','dob'=>'2000-04-05','address'=>'test address','course'=>'BS Tester','year'=>'1');
不过,如果有更好的方法,我会很乐意接受。