如何使用 Laravel 为 Graphql 应用程序创建单元测试?

Posted

技术标签:

【中文标题】如何使用 Laravel 为 Graphql 应用程序创建单元测试?【英文标题】:How can i created unit testing to Graphql application with Laravel? 【发布时间】:2018-11-05 13:06:01 【问题描述】:

我使用 Graphql 使用 Laravel 创建了一个应用程序。但我不知道如何创建我的单元测试。只用 phpUnit 做简单的请求还是有其他更好的方法?

Laravel 中的示例查询 Graphql:

class ClientQuery extends Query

    protected $attributes = [
        'name' => 'ClientQuery',
        'description' => 'A query'
    ];

    public function type()
    
       return GraphQL::type("Client");
    

    public function args()
    
       return [
            'id' => [
                 'type' => Type::nonNull(Type::int()),
            ],
       ];
    

    public function resolve($root, $args, $context, ResolveInfo $info)
    
      return Client::find($args['id']);
    

【问题讨论】:

【参考方案1】:

我目前和你一样使用 GraphQL。 因为我使用 GraphQL 文件来描述我的数据模型,所以我只有 PHP 中的解析器(像你一样没有?)。

我认为你可以创建单元测试但它不是必需的,因为数据模型的作用是避免类型错误。但是你可以让它表现更好的产品/平台是的。

因此,集成测试对于测试解析器非常重要。

我目前正在使用 API 调用来测试解析器,但它可能会改变,因为我不是专家,而且我认为这不是更好的方法,但现在可以完成这项工作。

【讨论】:

以上是关于如何使用 Laravel 为 Graphql 应用程序创建单元测试?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用公用文件夹和 php artisan 的情况下在 laravel graphql-playground 中加载 schema.graphql

如何在 Laravel Rebing GraphQL 中使用“隐私”属性函数?

GraphQL 配合 JWT 使用 —— Laravel RSS

如何使用 Laravel8 中的 Twig 扩展注入 php GraphQL 查询结果,在 Twig(Bridge) 模板中定义查询?

在 Laravel/Lighthouse GraphQL API 中实现搜索功能

变异中的 Laravel LightHouse GraphQL DateTime 输入始终为空