模拟 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 后端