【问题标题】:Access array value from codeception object从 codeception 对象访问数组值
【发布时间】:2015-11-26 10:45:50
【问题描述】:

我在 PHP53 上所以 codeception 1.8

$response = (array)$I->grabDataFromJsonResponse("result");
\Codeception\Util\Debug::debug($response);

  Array
  (
      [*position] => 0
      [*val] => Array
          (
              [key1] => 10
              [key2] => 1
          )

      [*assocArray] => 1
  )

现在当我尝试访问数组中的值时,它给了我错误

\Codeception\Util\Debug::debug($response['key1']);

[ErrorException] Undefined index: key1

【问题讨论】:

  • 应该如此。试试\Codeception\Util\Debug::debug($response['*val']['key1']);
  • @Calimero 我试过了,说“未定义的索引:*val”如何获取值?
  • $response[0]['*val']['key1']
  • @MA-Maddin 注意:未定义的偏移量:0

标签: php unit-testing codeception acceptance-testing web-api-testing


【解决方案1】:

这是因为Object -> array conversion

要访问受保护的属性(以 * 开头),您必须包含周围的空字节:

$response["\0*\0val"]['key1']

(注意双引号)

【讨论】:

  • 这行得通!但是,我也在寻找一个答案,我可以使用 codeception BDD 样式 API 直接从响应中获取数组。
  • grabDataFromJsonResponse 不这样做吗?
  • @Naktibalda grabDataFromJsonResponse 在涉及数组时无法选择路径。有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 2019-03-22
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
相关资源
最近更新 更多