phpunit: Невозможно эффективно assertCount при тестировании функций laravel - PullRequest
0 голосов
/ 26 марта 2019

Когда я пытаюсь assertCount (), я получаю эту ошибку:

PHPUnit\Framework\Exception: Argument #2 (No Value) of PHPUnit\Framework\Assert::assertCount() must be a countable or traversable

что означает, что я не пропускаю что-то, что исчисляется.

Вот мой контроллер, я просто возвращаю коллекцию.

 public function index()
    {
        // Get articles
        $articles = Article::all();

        return $articles->toArray();
}

Здесь я могу сделать count($articles), и это даст мне счет, но phpunit преобразует эту коллекцию данных в другой объект. Следовательно, что дает мне ошибку.

* 1013 т.е. *

/** @test */
    public function a_user_can_view_articles(){

        factory('App\Article')->create();

        $response = $this->get('api/articles');

        $this->assertCount(1, $response);

    }

Но я, если assertCount это как:

$this->assertCount(1, $response->baseResponse->data);

it works. Я не хочу делать это все время. В любом случае я могу сделать это лучше

1 Ответ

0 голосов
/ 26 марта 2019

конвертирует его в json, используйте

$this->assertCount(1, $response->json());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...