graphql 的 mock 方式

401 阅读1分钟

GraphQL的Mock方式是一种在开发环境中模拟GraphQL API的方法,用于测试前端代码的可靠性和数据的呈现方式。以下是两种流行的GraphQL Mock方式:

graphql-tools

graphql-tools是一种流行的GraphQL工具库,可以用来编写基于GraphQL schema的mock数据。它提供了一个MockList构造函数,可以生成随机的mock数据。下面是一个使用graphql-tools的例子:

import { makeExecutableSchema } from 'graphql-tools';

const typeDefs = `
  type Query {
    books: [Book]
  }

  type Book {
    title: String
    author: String
  }
`;

const resolvers = {
  Query: {
    books: (_, args) => new MockList(args.count),
  },
};

const schema = makeExecutableSchema({
  typeDefs,
  resolvers,
});

Apollo Server Mocks

Apollo Server是一个用于创建GraphQL API的流行工具库。它提供了一个mocks选项,可以用于在开发环境中生成mock数据。下面是一个使用Apollo Server的例子:

import { ApolloServer, gql } from 'apollo-server';

const typeDefs = gql`
  type Query {
    books: [Book]
  }

  type Book {
    title: String
    author: String
  }
`;

const mocks = {
  Query: () => ({
    books: () => new MockList(10),
  }),
};

const server = new ApolloServer({
  typeDefs,
  mocks,
});

server.listen().then(({ url }) => {
  console.log(`🚀 Server ready at ${url}`);
});

这里的MockListgraphql-tools中提供的构造函数相同。这两种方法都可以帮助您快速创建一个Mock GraphQL API,以便在开发过程中进行测试和调试。