gpt4 book ai didi

graphql - 将片段从 GraphQL 文件导入到另一个 GraphQL 文件不起作用

转载 作者:行者123 更新时间:2023-12-05 05:10:46 30 4
gpt4 key购买 nike

我正在尝试通过使用 .graphql 文件并传递变量来对 Karate 进行测试。在我的 graphql 架构中,我试图重用另一个 .graphql 文件中的片段。我尝试按照 https://www.apollographql.com/docs/react/advanced/fragments#webpack-importing-fragments 上的解释进行操作但是当我在 .graphql 文件上使用#import 语句运行 Karate 测试时,测试失败,说片段未知。

FindProfile.feature

@smoke
Feature: Test GraphQL FindTrendingProfiles

Background:
* url 'https://192.168.0.0.1'

Scenario: FindTrendingProfiles Request
Given def query = read('FindProfile.graphql')
And def variables = { cursor: "1", cursorType: PAGE, size: 2 }
And request { query: '#(query)', variables: '#(variables)' }
When method post
Then status 200

查找配置文件.graphql

#import "./Media.graphql"

query FindProfile($cursor: String, $cursorType: CursorType!, $size: Int!) {
FindProfile(cursor: $cursor, cursorType: $cursorType, size: $size) {
edges{
id
profilePictureMedia{
...Media
}
}
}
}

媒体.graphql

    fragment Media on Media {
id
title
description
}

我希望我可以重用另一个 .graphql 文件中的片段,但实际上我不能那样做。任何帮助是极大的赞赏。谢谢。

最佳答案

To Karate GraphQL 只是作为纯文本或原始字符串处理。不支持 GraphQL 导入。

团队通常做的是在客户端向服务器发出 HTTP POST 请求时获取有效 GraphQL 的样本。这甚至可以包含您在 these examples 中看到的片段.

然后你所有的测试需要做的就是重新播放它。 Karate 为您提供的是大量的字符串操作功能,例如 replace如果您需要数据驱动的测试。

总而言之,使用完全形成的 GraphQL 字符串。如果您需要修改它们,请使用 replace 或使用 JS 或 Java 实用程序的自定义字符串操作。在大多数情况下,GraphQL variables足以进行数据驱动测试。

关于graphql - 将片段从 GraphQL 文件导入到另一个 GraphQL 文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56273444/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com