Laravel - утверждение массива phpunit - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь написать тест phpunit, чтобы я мог проверить, что я получаю правильное утверждение, этот тест, который у меня сейчас есть, проходит и работает, как задумано.

/**
@test
*/
  $filmInfo = $this->postRequest();

        $this->assertFilm($this->requestData, $filmInfo['id']);

        $film = Film::findOrFail($filmInfo['id']);

        $this->assertEquals('LOTR', $filmInfo['name']);
        $this->assertEquals('Film about a ring', $filmInfo['description']);
        $this->assertEquals('Fantasy', $filmInfo['genre']['main']);
        $this->assertEquals('Adventure', $filmInfo['genre']['sub']);
    }

Это запросмассив данных, на который он ссылается:

    private function requestData(): array
    {
        return [
            'name' => 'LOTR',
            'description' => 'Film about a ring',
            'main' => 'Fantasy',
            'sub' => 'Adventure',
        ];
    }

Этот тест работает нормально, и он проходит, но я хочу проверить его в рамках одного утверждения, например так:

  $this->assertEquals([
            'name' => 'LOTR',
            'description' => 'Film about a ring',
            'genre' => [
                'main' => 'Fantasy',
                'sub' => 'Adventure'
            ]
            ,
        ], $filmInfo);

Но я продолжаю получать ошибкучто 2 массива, которые я утверждаю, не совпадают, у вас, ребята, есть идея, что может быть причиной этого?

1 Ответ

2 голосов
/ 20 октября 2019

Как и в случае с PHPUnit, ваш массив не совпадает. Ваш массив должен совпадать с all values в $filmInfo массиве.

Из вашего кода мы можем догадаться, что вы не сравниваете id. Может быть, вы можете попробовать этот код:

$this->assertEquals(array_merge($filmInfo, [
    'name' => 'LOTR',
    'description' => 'Film about a ring',
    'genre' => [
        'main' => 'Fantasy',
        'sub' => 'Adventure'
    ],
]), $filmInfo);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...