option('user-id'); $nickname = $this->option('nickname'); $this->info("开始测试URS Webhook功能..."); $this->info("测试用户ID: {$userId}"); $this->info("测试昵称: {$nickname}"); try { // 获取一个现有的服务记录或创建一个简单的模拟对象 $service = ServiceModel::first(); if (!$service) { $this->error("❌ 没有找到可用的服务记录,请先在数据库中创建一个服务记录"); return; } // 创建测试请求 $request = new Request(); // 创建webhook实例 $webhook = new UrsRegisterFarmUserWebhook($service->code, $request, $service); // 使用反射调用受保护的方法 $reflection = new \ReflectionClass($webhook); $method = $reflection->getMethod('setUserNicknameAndAvatar'); $method->setAccessible(true); // 清理可能存在的测试数据 UserInfo::where('user_id', $userId)->delete(); $this->info("执行设置昵称和头像..."); // 执行方法 $method->invoke($webhook, $userId, $nickname); // 验证结果 $userInfo = UserInfo::where('user_id', $userId)->first(); if ($userInfo) { $this->info("✅ 测试成功!"); $this->info("用户ID: {$userInfo->user_id}"); $this->info("昵称: {$userInfo->nickname}"); $this->info("头像: {$userInfo->avatar}"); // 验证头像范围 $avatar = (int) $userInfo->avatar; if ($avatar >= 1 && $avatar <= 8) { $this->info("✅ 头像ID在正确范围内 (1-8)"); } else { $this->error("❌ 头像ID不在正确范围内: {$avatar}"); } // 验证昵称 if ($userInfo->nickname === $nickname) { $this->info("✅ 昵称设置正确"); } else { $this->error("❌ 昵称设置错误,期望: {$nickname},实际: {$userInfo->nickname}"); } } else { $this->error("❌ 测试失败:未找到用户信息记录"); } // 清理测试数据 UserInfo::where('user_id', $userId)->delete(); $this->info("测试完成,已清理测试数据"); } catch (\Exception $e) { $this->error("❌ 测试失败:" . $e->getMessage()); $this->error("错误详情:" . $e->getTraceAsString()); } } }