Я работаю с функциональным тестом, и он правильно возвращает данные; все возвращается правильно; и я нахожусь на последней части моего теста.
Я изо всех сил пытаюсь утверждать, что я возвращаю ResourceCollection:
$this->assertInstanceOf(ResourceCollection::class, $response);
Вот часть моего теста:
MyFeature. php
...
$http->assertStatus(200)
->assertJsonStructure([
'data' => [
'*' => [
'type', 'id', 'attributes' => [
'foo', 'bar', 'baz',
],
],
],
'links' => [
'first', 'last', 'prev', 'next',
],
'meta' => [
'current_page', 'from', 'last_page', 'path', 'per_page', 'to', 'total',
],
]);
// Everything is great up to this point...
$this->assertInstanceOf(ResourceCollection::class, $response);
Я получаю сообщение об ошибке:
Не удалось подтвердить, что объект stdClass (... ) является экземпляром класса "Illuminate \ Http \ Resources \ Json \ ResourceCollection".
Я не уверен, что я должен утверждать в этом случае. Я возвращаю коллекцию ресурсов, что я должен использовать вместо этого? Спасибо за любые предложения!
РЕДАКТИРОВАТЬ
Спасибо @ mare96! Ваше предложение привело меня к другому подходу, который, казалось, сработал. Что отлично но я не слишком уверен, что я действительно понимаю, почему ...
Вот мой полный тест (включая мое последнее утверждение):
public function mytest() {
$user = factory(User::class)->create();
$foo = factory(Foo::class)->create();
$http = $this->actingAs($user, 'api')
->postJson('api/v1/foo', $foo);
$http->assertStatus(200)
->assertJsonStructure([
'data' => [
'*' => [
'type', 'id', 'attributes' => [
'foo', 'bar', 'baz'
],
],
],
'links' => [
'first', 'last', 'prev', 'next',
],
'meta' => [
'current_page', 'from', 'last_page', 'path', 'per_page', 'to', 'total',
],
]);
$this->assertInstanceOf(Collection::class, $http->getOriginalContent());
}