Php Laravel上的写测试
您好,我想为我的Api编写测试,我创建了一个名为: LessonsTest.phpPhp Laravel上的写测试,php,laravel,api,testing,phpunit,Php,Laravel,Api,Testing,Phpunit,您好,我想为我的Api编写测试,我创建了一个名为: LessonsTest.php use App\Lesson; use Tests\ApiTester; /** * Class LessonsTest * That Test Our Lessons */ class LessonsTest extends ApiTester { /** * @test * Test All Lessons pass */ public function it_f
use App\Lesson;
use Tests\ApiTester;
/**
* Class LessonsTest
* That Test Our Lessons
*/
class LessonsTest extends ApiTester
{
/**
* @test
* Test All Lessons pass
*/
public function it_fetches_lessons()
{
// Make Lesson
$this->times(5)->makeLesson();
// Get URL we want to test
$this->getJson('api/v1/lessons');
// Pass Ok Response
$this->assertResponseOk();
}
/**
* Make Lesson method
* @param array $lessonFields
*/
private function makeLesson($lessonFields = [])
{
$lesson = array_merge([
'title' => $this->fake->sentence,
'body' => $this->fake->paragraph,
'some_bool' => $this->fake->boolean
], $lessonFields);
while ($this->times--) Lesson::create($lesson);
}
}
现在,您可以看到它的扩展自ApiTester文件:
namespace Tests;
use Faker\Factory as Faker;
class ApiTester extends TestCase
{
protected $fake;
protected $times = 1;
/**
* ApiTester constructor.
* @param $faker
*/
public function __construct()
{
$this->fake = Faker::create();
}
protected function times($count)
{
$this->times = $count;
return $this;
}
}
因此,当我尝试测试时,我遇到的问题都是“立即编写”:
vendor\bin\phpunit tests\LessonsTest.php
我得到这个错误:
1) 新英语900句新英语900句新英语900句新英语900句新英语900句新英语900句新英语900句新英语900句
ErrorException:array_merge():参数#1不是数组
我做了很多研究,但找不到解决方案
Log::info($this->fake->句子)代码>你得到了什么?您好,谢谢您的回复。我应该在哪里测试此代码?在makeLesson
数组上方的array\u merge
中,我通过private function makeLesson($lessonFields=[]){\illights\Support\Facades\Log::info($this->fake->句子)
正如您所说,这段代码,但是当我再次尝试在cmd中运行phpunit时,我得到了相同的错误