#laravel #laravel-5 #phpunit
#laravel #laravel-5 #phpunit
Вопрос:
Когда я пытаюсь assertCount () Я получаю эту ошибку:
PHPUnitFrameworkException: Argument #2 (No Value) of PHPUnitFrameworkAssert::assertCount() must be a countable or traversable
это означает, что я не передаю что-то, что является счетным.
Вот мой контроллер, я просто возвращаю коллекцию.
public function index()
{
// Get articles
$articles = Article::all();
return $articles->toArray();
}
Здесь я могу сделать, count($articles)
и это даст мне количество, но phpunit
преобразует этот набор данных в другой объект. Следовательно, это выдает мне ошибку.
то есть
/** @test */
public function a_user_can_view_articles(){
factory('AppArticle')->create();
$response = $this->get('api/articles');
$this->assertCount(1, $response);
}
Но я, если assertCount
это понравится:
$this->assertCount(1, $response->baseResponse->data);
it works
.
Я не хочу делать это постоянно. Могу ли я в любом случае сделать это лучшим образом
Ответ №1:
он преобразует его в json, используйте
$this->assertCount(1, $response->json());
Комментарии:
1. О, мой господь. Я уточнил
jsonResponse{baseReponse{}}
.. Спасибо, приятель. Вы избавили меня от многих проблем.