模拟 apollo graphql 客户端

Posted

技术标签:

【中文标题】模拟 apollo graphql 客户端【英文标题】:Mocking apollo graphql client 【发布时间】:2019-06-22 17:01:57 【问题描述】:

我编写了以下节点客户端,它与 graphql 服务器交互并使用 apollo-tools 节点模块。我无法在节点中找到以下任何模拟测试。请告诉我有没有办法模拟下面的代码。

const batchIdFetchClient = new ApolloClient(
        uri: `http://localhost:3435`,
        fetch,
    )

    await batchfetchclient.query(
        query: gql`
  query batcidId($batchid: String!) 
    batchIds(batchid: $batchid)
        batchrenewedId 
    
  
`,
        variables: 
            batchid: 'exdsfsdfsfdid1234', // As of now hardcoded
        ,
    )
        .then(data => 
            logger.info('BatchId Database Successful Response =>' + JSON.stringify(data))
        )
        .catch(error => 
            logger.error('BatchId Database Error Response =>' + error)
        )

【问题讨论】:

【参考方案1】:

也许你可以尝试使用easygraphql-tester,它会是这样的:

您需要传递您的架构才能模拟它

const EasyGraphQLTester = require('easygraphql-tester')

const tester = new EasyGraphQLTester(schema)

const query = gql`
  query batcidId($batchid: String!) 
    batchIds(batchid: $batchid)
      batchrenewedId 
    
  
`

const mock = tester.mock(
  query,
  variables: 
    batchid: 'exdsfsdfsfdid1234', // As of now hardcoded
  
)

console.log(mock)

另外,如果你想拥有一个特定的数据,你可以设置夹具。

【讨论】:

以上是关于模拟 apollo graphql 客户端的主要内容,如果未能解决你的问题,请参考以下文章

使用 graphql 和 apollo 客户端刷新 Angular 令牌

无法将 GraphQL 查询从 Apollo 客户端发送到 Rails GraphQL 后端

GraphQL + Apollo 请求

GraphQL:无法读取 Apollo 客户端中的响应标头

GraphQL / Apollo - 无法获取 NetworkError

使用替代 GraphQL 客户端连接到 Apollo Server