extends GutTest var Enemy = load("res://Game/Mobs/enemy.gd") # Módosítsd a tényleges útvonalra var _enemy = null var _parent_mock = null func before_each(): # Mock szülő objektum létrehozása _parent_mock = Node2D.new() _parent_mock.set_script(load("res://Game/Mobs/enemy.gd")) _enemy = Enemy.new() _parent_mock.add_child(_enemy) # Gyermek node-ok mockolása var character_body = CharacterBody2D.new() character_body.name = "CharacterBody2D" var animated_sprite = AnimatedSprite2D.new() animated_sprite.name = "AnimatedSprite2D" character_body.add_child(animated_sprite) _enemy.add_child(character_body) _enemy.add_child(ProgressBar.new()) func after_each(): _enemy.queue_free() _parent_mock.queue_free() # 1. TESZT: Karakteradatok helyes beállítása func test_set_character_data_forkman(): # 1. Lépés: Beállítjuk a nevet és meghívjuk a függvényt _enemy.name = "Forkman" _enemy.set_character_data() # 2. Lépés: Ellenőrizzük az értékeket assert_eq(_enemy.speed, 120, "Sebesség helytelen") assert_eq(_enemy.health, 100, "Életerő helytelen") assert_eq(_enemy.shield, 100, "Pajzs helytelen") assert_eq(_enemy.damage, 2, "Sebzés helytelen") assert_true(_enemy.name.begins_with("Forkman-"), "Névformátum hibás") # 2. TESZT: Sebzéskezelés pajzzsal func test_enemy_hurt_with_shield(): # 1. Lépés: Kezdeti állapot beállítása _enemy.name = "Forkman" _enemy.set_character_data() _enemy.current_shield = 50 _enemy.current_health = 100 # 2. Lépés: Sebzés alkalmazása _enemy.enemy_hurt(30) # 3. Lépés: Eredmények ellenőrzése assert_eq(_enemy.current_shield, 20, "Pajzs nem csökkent megfelelően") assert_eq(_enemy.current_health, 100, "Életerő változott pajzs mellett")