Javascript 如何检查是否使用jest调用了函数

Javascript 如何检查是否使用jest调用了函数,javascript,unit-testing,jestjs,Javascript,Unit Testing,Jestjs,我想测试调用下面的函数getApolloServer()时是否创建了新的Apollo server对象: // src/apolloServer.ts import { ApolloServer } from 'apollo-server' import { buildSchema } from 'type-graphql' import { HelloWorldResolver } from './resolvers/HelloWorldResolver' import { MovieReso

我想测试调用下面的函数
getApolloServer()
时是否创建了新的Apollo server对象:

// 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测试代码如下所示:

// 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报告收到的呼叫数:0,而不是预期的
1
。我是测试和javascript新手,所以我可能在这里遗漏了一些明显的东西,但我在关于如何做到这一点的文章中找不到合适的例子


谢谢您的帮助。

您的函数是一个异步函数,测试也应该是异步函数。使单元测试异步,并在getApolloServer()上等待。检查
等待getApolloServer()
的结果。这应该是ApolloServer的一个实例