php - 拉维尔 5.6。 PHP单元。顺序不敏感的 assertJson() 方法

标签 php laravel laravel-5 phpunit laravel-testing

在我的业务逻辑中,我不关心元素的顺序。

这是我的测试例子

$this->getJson('/api/order-attempts')
     ->assertJson([
         'data' => [
             ['status' => 'error'],
             ['status' => 'error'],
             ['status' => 'confirmed'],
             ['status' => 'confirmed'],
             ['status' => 'confirmed'],
         ],
     ])->isOk();

时不时会因为订单的原因而失败。我不想对 api 进行排序,因为我不需要它。

是否有可能以某种方式assertJsonIgnoringOrder()

最佳答案

您可以使用assertSame()检查json的结构和对齐方式

例如试试这个

 $this->assertSame(json_encode([
     'data' => [
         ['status' => 'error'],
         ['status' => 'error'],
         ['status' => 'confirmed'],
         ['status' => 'confirmed'],
         ['status' => 'confirmed'],
     ]),$response->getContent(), '');

关于php - 拉维尔 5.6。 PHP单元。顺序不敏感的 assertJson() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52891296/

相关文章:

php - Laravel 5.2 Socialite 检索空电子邮件

php - Schema::dropIfExists() 在迁移时删除了数据库中的所有表:回滚

javascript - Socketio 配置错误,无法连接/登录连接

php - 预替换<*>

php - 如何向使用 DOMPDF 和 Laravel 5.8 生成的 PDF 添加页眉和页脚

php - Laravel 数据库插入错误 : Allowed Memory Size Exhausted

php - 如何创建 Gmail 聊天?如何连接到 AIM 并允许 AIM 聊天?

laravel - "Could not find driver"执行查询时的消息

MySQL 使用此增量 id 插入

php - 如何从 Controller 调用事件?命名空间