javascript - Frisby ExpectJSON 包含无序列表

标签 javascript arrays node.js jasmine-node frisby.js

假设 Frisby 测试需要以下 JSON:

{
    array: ["1", "2", "3"]
}

字符串数组可以按任何顺序返回,例如["3", "1", "2"]

如何在不期待订单的情况下期待上面定义的数组?

我已经尝试过

.expectJSON('array.?', "1")
.expectJSON('array.?', "2")
.expectJSON('array.?', "3")

但这不是有效的语法,并且会发生以下错误:

 TypeError: Expected valid JavaScript object to be given, got undefined

最佳答案

我也遇到了同样的问题,终于解决了。使用 .afterJSON(),您将能够使用 Jasmine 的期望语法对 JSON 对象执行您想要的所有验证。

对于您的示例,脚本将如下所示:

    .afterJSON(function(json){
        expect(json.array).toContain('1');
        expect(json.array).toContain('2');
        expect(json.array).toContain('3');
    })

关于javascript - Frisby ExpectJSON 包含无序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27997104/

相关文章:

Javascript:输入不适用于提交密码

javascript - d3 转换为对象数组中的数字

ruby-on-rails - 如何对具有反向排序方向的 ruby​​ 数组应用二次排序?

mysql - 用于网页游戏平台的 Node.js 数据库

node.js - 明确限制请求大小

java - 上传文件时处理网络问题

javascript - 在javascript中设置动画时更改图像颜色

javascript - "Error: Mismatched anonymous define()"与 Karma + RequireJS + Jasmine

控制到达 C 中非 void 函数的末尾

json - IONIC 3 应用程序无法正确发布 JSON