如何为 xunit 集成测试编写 GraphQL 变异查询

Posted

技术标签:

【中文标题】如何为 xunit 集成测试编写 GraphQL 变异查询【英文标题】:How to write a GraphQL mutation query for xunit integration test 【发布时间】:2019-04-06 17:02:05 【问题描述】:

我想对我的 GraphQL 突变执行集成测试。我可以在我的 GraphiQL 中很好地运行查询,但我真的不知道如何将其转换为带有 xunit 集成测试输入的查询字符串。

上面是我的 GraphiQL,它可以很好地返回数据。我已经关注StarWars git hub 项目进行集成测试。通过传递 graphql 查询字符串查询 GraphQL 工作正常,但由于缺乏知识和文档,我无法将上述 GraphiQL 突变转换为查询字符串。

以下是我到目前为止的集成测试代码,其中缺少查询变量部分并且不知道如何将它们引入

        //Arrange
        const string query = @" 
            ""query"": "" mutation CreateMutation($input: InputType!) 
                          addNewItem(myInput: $input) 
                            col1
                            col2
                            col3
                            col4
                            col5
                    
                 ""
        ";
        var content = new StringContent(query, Encoding.UTF8, "application/json");

        // Act
        var response = await client.PostAsync("/graphql", content);

        //Assert
        response.EnsureSuccessStatusCode();

【问题讨论】:

【参考方案1】:

我已经弄清楚了查询字符串的语法,如下所示

const string query = @" 
            ""query"": "" mutation CreateMutation($input: InputType!)  addNewItem(myInput: $input)  col1 col2 col3 col4 col5   "",
            ""variables"":  input : col1: 100, col2: 'starwars' 
        ";

【讨论】:

以上是关于如何为 xunit 集成测试编写 GraphQL 变异查询的主要内容,如果未能解决你的问题,请参考以下文章

如何为@RabbitListener 注解编写集成测试?

如何为具有spring存储库代码的@Component类编写集成测试?

如何为 GraphQL Mutation 字段编写解析器

如何为 TypeScript 配置 `*.graphql` 导入?

如何为基于 http 的集成测试生成覆盖率报告?

如何为graphql查询转义变量