如何使用phpunit在JsonArray中测试随机值

时间:2016-07-13 03:06:33

标签: php json laravel laravel-5 phpunit

Hello Everyone我试图测试API并从响应中获取特定的json元素,以下是来自API的响应:

{
  "Error": null,
  "Data": {
    "AuthToken": "jaskdfjlsadkfjasd",
    "InactiveTimeout": 20
  }
}

由于AuthToken的值始终是随机的,我无法使用此代码对其进行测试:

$this->post('/login',
    [
      'id'=>'1',
      'password'=>'secret',
    ])->seeJson([
      "Error" => null,
      'Data'=>array(
        'AuthToken'=>'',
        'InactiveTimeout'=>20)
       ]);

我尝试使用此代码:

$this->post('/login',
    [
      'id'=>'1',
      'password'=>'secret',
    ])->seeJson([
      "Error" => null,
      'Data'=>array(
        'InactiveTimeout'=>20)
       ]);

但我无法通过测试,我的问题是如何为此案例编写测试? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

您可以尝试以下代码:

$this->post('/login', [
        'id' => '1',
        'password' => 'secret',
    ])
    ->seeJson([
        'Error' => null
    ])
    ->seeJsonStructure([
        'Data' => [
            'AuthToken'
        ]
    ]);