代码之家  ›  专栏  ›  技术社区  ›  Robo Robok

用Laravel测试JSON响应

  •  1
  • Robo Robok  · 技术社区  · 6 年前

    我用Laravel准备了一个API示例。它总是返回以下对象:

    {
        "a": 1,
        "b": 2
    }
    

    现在,我想更好地了解如何用 phpunit assertJson assertJsonFragment 我不明白它们之间的区别。

    假设我想断言响应的确切结构,所以它需要 a=1 b=2

    $response = $this->get('/api/foo');
    
    $response->assertStatus(200)
             ->assertJson(['a' => 1, 'b' => 2]);
    

    c=3 或者别的什么。然后就是了 方法,对于我的测试,它的行为是相同的,只是给出了不同的错误消息。

    婴儿车?有没有其他方法来做我想做的事情,就是确保响应是这个特定的属性集?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Tom    6 年前

    here :

    assertJson 方法将响应转换为数组并利用 PHPUnit::assertArraySubset 在应用程序返回的JSON响应中。所以,如果有 在JSON响应的其他属性中,此测试仍将作为

    更重要的是,为了实现你的目标:

    assertExactJson 方法