【问题标题】:Expected Array but received array in Jest预期的数组,但在 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”。

标签: javascript arrays reactjs jestjs


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 2019-06-20
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 2017-12-29
    相关资源
    最近更新 更多