我想测试在调用下面的函数getApolloServer()
时是否创建了一个新的阿波罗服务器对象:
// 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报告的是Received number of calls: 0
而不是预期的1
。我对测试和javascript很陌生,所以我可能在这里缺少一些显而易见的东西,但是我在文档中找不到一个关于如何做到这一点的适当例子。
谢谢你的帮助。
发布于 2020-06-11 11:59:07
您的函数是一个异步函数,所以您的测试应该是异步的。让您的单元测试异步并等待getApolloServer()。检查await getApolloServer()
的结果。这应该是ApolloServer的一个实例。
https://stackoverflow.com/questions/62323788
复制相似问题