预期的数组,但在 Jest 中收到了数组

Posted

技术标签:

【中文标题】预期的数组,但在 Jest 中收到了数组【英文标题】:Expected Array but received array in Jest 【发布时间】:2018-02-25 14:46:02 【问题描述】:

我在 Jest 中创建了单元(异步)测试。但是当我得到服务器的响应时:

[
    
        name: "My name"
    ,
    
        name: "Another name"
    
]

并测试它:

test('Response from server', () => 
    get('my-url').end(error, response) => 
        expect(response.body).toBe(expect.any(Array))
    
)

发生了一些错误:

Comparing two different types of values. Expected Array but received array.

当我使用expect(response.body).any(Array) 时它正在工作。但是expect.toBe() 有什么解决办法吗?

【问题讨论】:

expect(response.body).any(Array) 不应该工作。 .any 不存在于来自expect() 的响应中,而是存在于expect 本身。引用的代码给出了这个错误:“TypeError: expect(...).any is not a function”。 【参考方案1】:

您应该使用toEqual(而不是toBe)来比较对象和数组。仅将 toBe 用于标量数据类型。如果您想检查响应数据类型,请使用 typeof 运算符

【讨论】:

以上是关于预期的数组,但在 Jest 中收到了数组的主要内容,如果未能解决你的问题,请参考以下文章

如何修复预期值:“1”接收到的数组:[“COUNT (*)”:“1”] 在带有 jest 框架的 TypeORM 中出现错误

预期开始数组,但在改造中出现开始对象错误

预期的数组但收到...(JSON)... AngularJS错误

如何修复预期的字符串,但在带有改造的嵌套数组上是 BEGIN_OBJECT

TypeError:预期的字符串,但收到数组邮递员

资源配置错误。包含对象但得到数组的预期响应