预计将调用一个断言,但收到零

时间:2018-11-21 13:17:18

标签: javascript node.js unit-testing jestjs

我在和Jest斗争,我只是无法使其正常工作。

我要测试的功能:

fetchPosts() {
    return new Promise((resolve, reject) => {
        Posts.find({}).then(posts => {
            if (posts) {
                resolve(posts)
            } else {
                reject("NOOOO")
            }
        })
    })
}

测试:

describe('fetching posts', () => {
    it('should get a list of posts in Array format', () => {
      expect.assertions(1);
      const result = posts.fetchPosts();
      return expect(result).resolves.toEqual(expect.any(Array));
    })
})

fetchPosts函数确实返回整个帖子列表。我如何使我的考试通过?

1 个答案:

答案 0 :(得分:0)

您的fetchPost函数是异步的。为了使其在测试中起作用,您需要进行一些更改。

  1. 在测试中添加“异步”

    it('should get a list of posts in Array format', async () => {...})

  2. 在调用异步函数之前添加'await'

  3. 您需要expect()要在不使用return语句的情况下从函数中返回的结果。