You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.3 KiB
72 lines
2.3 KiB
#!/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)
|