【发布时间】:2018-01-06 19:20:09
【问题描述】:
我无法在我的 Laravel 测试中发布多维数组。一维数组 POST 很好。也许我应该使用其他一些使用 json_encode 的函数,但我找不到任何支持它的东西。
重要的是我能够发布下面的数据结构,我已在我的 seeJSONStructure() 断言中添加以更好地说明数据结构。
这是我的测试示例:
$this->json('POST', '/endpoint', [
'foo' => 'foo',
'bar' => [
[
'foo' => 'foo',
'bar' => 'bar'
]
]
])
->assertResponseStatus(200)
->seeJsonStructure([
'*' => [
'foo',
'bar' => [
'*' => [
'foo',
'bar'
]
]
]
]);
这给了我错误
PHPUnit_Framework_Exception: Argument #2 (No Value) of PHPUnit_Framework_Assert::assertArrayHasKey() must be an array or ArrayAccess
删除嵌套数组可以防止错误,但必须有一种方法可以 POST 多维数组。
以下工作正常:
$this->json('POST', '/endpoint', [
'foo' => 'foo',
'bar' => 'bar'
])
->assertResponseStatus(200)
【问题讨论】:
-
检查这里 'bar => 'bar' 添加单引号
-
'foo => 'foo',&'bar => 'bar'是拼写错误吗? -
抱歉,我的示例中缺少的单引号是一个错字,而不是真正的问题
-
@Elliot 我更新了我的答案
标签: php laravel laravel-5.2 phpunit