You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动化测试LibGDX游戏的输入处理与启动屏切换逻辑

LibGDX启动屏输入响应自动化测试问题

背景与测试需求

我使用Java开发一款基于LibGDX的游戏(该问题同样适用于通用Java应用),需要自动化测试游戏对特定输入序列的响应:

  • 已实现两个启动屏:第一个为LibGDX标志屏(LogoSplashScreen),第二个为开发者署名屏(PresentationSplashScreen)
  • 每个启动屏的动画逻辑:0.5秒淡入 → 停留2秒 → 0.5秒淡出
  • 支持按回车键跳过当前启动屏,快速进入下一界面

需验证的三个测试场景:

  1. 启动后无任何输入,应用显示LogoSplashScreen
  2. 按一次回车键后,应用显示PresentationSplashScreen
  3. 按两次回车键后,应用显示MainMenuScreen

注:应用本身的功能已正常实现,核心问题是如何将这些手动测试自动化?

已尝试的方法及问题

我尝试了三种方法,但均未达到预期效果:

  1. java.awt.Robot类:该类的Javadoc描述为“为测试自动化、自动演示等需要控制鼠标和键盘的应用生成原生系统输入事件”,用它检测实际像素颜色时表现正常,但生成的KeyEvents无法传递到我的LibGDX应用中。
  2. InputEventQueue:尝试向队列传入所有事件后,在应用的InputProcessor上调用drain方法。目前尚未放弃该方案,但存在问题:Lwjgl3Application的构造函数会在同一线程启动主循环,导致无法同步执行测试;即使将构造函数调用包装在独立线程中,仍无法准确得知应用何时进入主循环状态。
  3. GdxTestRunner:参考过往类似问题的建议使用该测试运行器,但它通过模拟Lwjgl后端以无头模式包装应用,因无法访问图形资源,实际无法完成屏幕切换的测试。

内容的提问来源于stack exchange,提问作者Ledmington

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 18:31:10