Написать тест на Laravel - PullRequest
0 голосов
/ 29 мая 2018

Здравствуйте, я хочу написать тест для моего Api, и я создаю файл с именем: LessonsTest.php

<?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_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:

<?php

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) LessonsTest :: it_fetches_lessons ErrorException: array_merge (): Аргумент # 1 не является массивом

Я много исследую, но не могу найти решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...