在laravel灯塔中使用附加参数测试graphql上传突变,可以按照以下步骤进行操作:
composer require nuwave/lighthouse
config/app.php
文件的providers
数组中添加Lighthouse服务提供者:Nuwave\Lighthouse\Providers\LighthouseServiceProvider::class,
php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider"
.env
文件中配置数据库连接信息,然后执行迁移:php artisan migrate
php artisan lighthouse:ide-helper
routes/graphql/schema.graphql
文件中定义GraphQL模式和类型,包括你想要测试的上传突变。tests/GraphQL/ExampleTest.php
,并编写测试方法,可以在其中使用附加参数测试上传突变。下面是一个示例:use Tests\TestCase;
class ExampleTest extends TestCase
{
public function testUploadMutationWithAdditionalParameters()
{
// 假设你已经定义了一个名为`uploadFile`的上传突变,它接收一个文件参数`file`和两个附加参数`param1`和`param2`
$file = // 创建一个测试用的文件
$response = $this->post('/graphql', [
'operations' => json_encode([
'query' => 'mutation($file: Upload!, $param1: String!, $param2: Int!) {
uploadFile(file: $file, param1: $param1, param2: $param2) {
// 返回你需要的字段
}
}',
'variables' => [
'file' => null, // 这里设置为null,因为下面会在`multipart`中设置文件
'param1' => 'value1', // 设置附加参数的值
'param2' => 123,
],
]),
'map' => json_encode([
'0' => ['variables.file'],
]),
'0' => $file, // 设置文件参数
]);
// 断言响应是否符合预期
$response->assertStatus(200);
$response->assertJson([
// 断言返回的字段是否符合预期
]);
}
}
php artisan test
这样,你就可以使用附加参数测试上传突变了。关于Laravel灯塔、GraphQL和Laravel的更多信息,可以参考以下链接:
领取专属 10元无门槛券
手把手带您无忧上云