首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查函数是否被jest调用

如何检查函数是否被jest调用
EN

Stack Overflow用户
提问于 2020-06-11 11:53:50
回答 1查看 97关注 0票数 0

我想测试在调用下面的函数getApolloServer()时是否创建了一个新的阿波罗服务器对象:

代码语言:javascript
运行
复制
// src/apolloServer.ts
import { ApolloServer } from 'apollo-server'
import { buildSchema } from 'type-graphql'
import { HelloWorldResolver } from './resolvers/HelloWorldResolver'
import { MovieResolver } from './resolvers/MovieResolver'

export const getApolloServer = async () => {
  return new ApolloServer({
    schema: await buildSchema({
      resolvers: [HelloWorldResolver, MovieResolver],
    }),
    context: ({ req, res }) => ({ req, res }),
  })
}

我的jest测试代码如下所示:

代码语言:javascript
运行
复制
// src/apolloServer.test.ts
import { ApolloServer } from 'apollo-server'
import { getApolloServer } from './apolloServer'

jest.mock('apollo-server')

describe('Apollo server', () => {
  it('should create a new Apollo server', () => {
    getApolloServer()
    expect(ApolloServer).toBeCalledTimes(1)
  })
})

Jest报告的是Received number of calls: 0而不是预期的1。我对测试和javascript很陌生,所以我可能在这里缺少一些显而易见的东西,但是我在文档中找不到一个关于如何做到这一点的适当例子。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-11 11:59:07

您的函数是一个异步函数,所以您的测试应该是异步的。让您的单元测试异步并等待getApolloServer()。检查await getApolloServer()的结果。这应该是ApolloServer的一个实例。

https://jestjs.io/docs/en/expect#tobeinstanceofclass

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62323788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档