正如标题所述,我希望能够使用可用的标量测试文件的上传,同时还为同一突变提供其他参数。该文档为如何测试此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。
答案 0 :(得分:1)
现在有点不同,您需要 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