我试图通过使用.graphql文件并传递变量对空手道进行测试。在我的graphql模式上,我试图重用另一个.graphql文件中的片段。我尝试按照https://www.apollographql.com/docs/react/advanced/fragments#webpack-importing-fragments的说明进行操作,但是当我对.graphql文件使用#import语句运行空手道测试时,该测试失败,说明该片段未知。
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
FindProfile.graphql
#import "./Media.graphql"
query FindProfile($cursor: String, $cursorType: CursorType!, $size: Int!) {
FindProfile(cursor: $cursor, cursorType: $cursorType, size: $size) {
edges{
id
profilePictureMedia{
...Media
}
}
}
}
Media.graphql
fragment Media on Media {
id
title
description
}
我希望我可以重用另一个.graphql文件中的片段,但实际上我无法做到这一点。任何帮助是极大的赞赏。谢谢。
答案 0 :(得分:1)
对于空手道GraphQL只是作为纯文本或原始字符串处理。不支持GraphQL导入。
团队通常要做的是在客户端向服务器发出HTTP POST请求时获得有效的GraphQL样本。它甚至可以包含片段,就像您在these examples中看到的一样。
然后,您的测试所需要做的就是重播该内容。空手道为您提供了许多字符串处理功能,例如replace
,如果您需要数据驱动的测试。
总而言之,请使用完整的GraphQL字符串。如果需要修改它们,请使用replace
或使用JS或Java实用程序进行自定义字符串操作。在大多数情况下,GraphQL variables足以进行数据驱动的测试。