如何解决如何在Laravel灯塔中使用其他参数测试graphql上传突变
正如标题所述,我希望能够使用可用的标量测试文件的上传,同时还为同一突变提供其他参数。该文档为如何测试此Lighthouse docs simulating file uploads提供了帮助。但是我的突变还需要一些其他动态参数来进行测试。但是我不知道如何提供这些附加参数。我当前的设置示例:
$response = $this->multipartGraphQL(['operations' => {
"query": "mutation ($file: Upload!) {registerUser(email: $email,files: [$file]) {courseRegistrationFiles{id}}}","variables": {"file": null}
}','map' => '{"0": ["variables.file"]}'],[
'0' => UploadedFile::fake()->create('document.pdf',100)
]);
$ email的一些附加说明应使用伪造的电子邮件地址表示,此操作在此代码段的上方行中进行。最初,我想像我必须在与定义uploadeFile :: fake()的位置相同的括号中提供email变量,但这会导致错误,指出该方法的此部分中的参数应为{ {1}}。之后,我还尝试将它们简单地添加到map / variables部分,但这导致参数为null。
解决方法
现在有点不同,您需要 3 个数组参数,例如:
$operations = [
'operationName' => 'upload','query' => 'mutation upload ($file: Upload!) {
upload (file: $file)
}','variables' => [
'file' => null,],];
$map = [
'0' => ['variables.file'],];
$file = [
'0' => UploadedFile::fake()->create('test.pdf',500),];
$this->multipartGraphQL($operations,$map,$file);
以下文档可以帮助您:https://lighthouse-php.com/5.2/testing/phpunit.html#simulating-file-uploads
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。