#!/usr/bin/env python3 """ 测试贪吃蛇游戏的速度调节功能 """ import sys sys.path.insert(0, '/Users/maziang/Documents/CodingWorkPlace/Code/Curriculum_Design') from src.ui.snake_game import SnakeGame, SnakeGameWindow from PyQt5.QtWidgets import QApplication from PyQt5.QtCore import Qt from PyQt5.QtGui import QKeyEvent def test_snake_game(): """测试贪吃蛇游戏""" app = QApplication(sys.argv) # 创建游戏窗口 window = SnakeGameWindow() window.show() # 获取游戏实例 game = window.game_widget # 测试初始速度 print(f"初始速度: {game.current_speed}ms") assert game.current_speed == game.GAME_SPEED, "初始速度应该是150ms" # 测试增加速度(按上键) print("\n测试增加速度...") initial_speed = game.current_speed game.increase_speed() print(f"按上键后速度: {game.current_speed}ms (从 {initial_speed}ms)") assert game.current_speed < initial_speed, "速度应该增加(毫秒数减少)" # 测试降低速度(按下键) print("\n测试降低速度...") current_speed = game.current_speed game.decrease_speed() print(f"按下键后速度: {game.current_speed}ms (从 {current_speed}ms)") assert game.current_speed > current_speed, "速度应该降低(毫秒数增加)" # 测试速度限制 print("\n测试速度限制...") # 测试最小速度限制 game.current_speed = game.MIN_SPEED game.increase_speed() print(f"最小速度限制测试: {game.current_speed}ms (应该 >= {game.MIN_SPEED}ms)") assert game.current_speed >= game.MIN_SPEED, "速度不应该低于最小值" # 测试最大速度限制 game.current_speed = game.MAX_SPEED game.decrease_speed() print(f"最大速度限制测试: {game.current_speed}ms (应该 <= {game.MAX_SPEED}ms)") assert game.current_speed <= game.MAX_SPEED, "速度不应该超过最大值" print("\n✓ 所有测试通过!") print(f"速度范围: {game.MIN_SPEED}ms - {game.MAX_SPEED}ms") print(f"速度步长: {game.SPEED_STEP}ms") window.close() if __name__ == '__main__': try: test_snake_game() except Exception as e: print(f"✗ 测试失败: {e}") import traceback traceback.print_exc() sys.exit(1)