enemy health tests done and passed
This commit is contained in:
@ -103,7 +103,7 @@ func adjust_health_bar() -> void:
|
||||
|
||||
func enemy_hurt(amount) -> void:
|
||||
if current_shield > 0:
|
||||
if shield > amount:
|
||||
if current_shield > amount:
|
||||
current_shield -= amount
|
||||
else:
|
||||
amount -= current_shield
|
||||
|
@ -1,53 +1,66 @@
|
||||
extends GutTest
|
||||
|
||||
var Enemy = load("res://Game/Mobs/enemy.gd") # Módosítsd a tényleges útvonalra
|
||||
var _enemy = null
|
||||
var _parent_mock = null
|
||||
var EnemyScene = load("res://Game/Mobs/forkman.tscn") # Ellenenség PackedScene útvonala
|
||||
var _enemy_instance = null
|
||||
var _mock_parent = 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)
|
||||
# Szülő mockolása PathFollow2D helyett
|
||||
_mock_parent = PathFollow2D.new()
|
||||
_mock_parent.name = "PathFollow2D_Mock"
|
||||
add_child(_mock_parent)
|
||||
|
||||
# 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())
|
||||
# Scene példányosítása
|
||||
_enemy_instance = EnemyScene.instantiate()
|
||||
_mock_parent.add_child(_enemy_instance)
|
||||
|
||||
# Gyermek node-ok inicializálása
|
||||
await get_tree().process_frame # Szükséges a _ready() függvény teljes lefutásához
|
||||
|
||||
func after_each():
|
||||
_enemy.queue_free()
|
||||
_parent_mock.queue_free()
|
||||
_enemy_instance.queue_free()
|
||||
_mock_parent.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
|
||||
func test_scene_initialization():
|
||||
# Gyermek elemek ellenőrzése
|
||||
var character_body = _enemy_instance.get_node("CharacterBody2D")
|
||||
var health_bar = _enemy_instance.get_node("ProgressBar")
|
||||
assert_not_null(character_body, "Hiányzó CharacterBody2D")
|
||||
assert_not_null(health_bar, "Hiányzó ProgressBar")
|
||||
|
||||
# 2. Lépés: Sebzés alkalmazása
|
||||
_enemy.enemy_hurt(30)
|
||||
|
||||
func test_shield_damage_reduction():
|
||||
# Kezdeti állapot beállítása
|
||||
_enemy_instance.current_shield = 50
|
||||
_enemy_instance.current_health = 100
|
||||
|
||||
# 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")
|
||||
# Sebzés alkalmazása
|
||||
_enemy_instance.enemy_hurt(30)
|
||||
|
||||
# Ellenőrzések
|
||||
assert_eq(_enemy_instance.current_shield, 20, "Pajzs érték helytelen")
|
||||
assert_eq(_enemy_instance.current_health, 100, "Életerő nem változhat pajzs esetén")
|
||||
|
||||
func test_shield_break_and_health_damage():
|
||||
# Kezdeti állapot
|
||||
_enemy_instance.current_shield = 20
|
||||
_enemy_instance.current_health = 100
|
||||
|
||||
# Nagy sebzés
|
||||
_enemy_instance.enemy_hurt(30)
|
||||
|
||||
# Ellenőrzések
|
||||
assert_eq(_enemy_instance.current_shield, 0, "Pajzsnak nullának kell lennie")
|
||||
assert_eq(_enemy_instance.current_health, 90, "Életerő csökkenés hibás")
|
||||
|
||||
func test_health_damage_without_shield():
|
||||
# Pajzs nélküli állapot
|
||||
_enemy_instance.current_shield = 0
|
||||
_enemy_instance.current_health = 80
|
||||
|
||||
# Sebzés
|
||||
_enemy_instance.enemy_hurt(25)
|
||||
|
||||
assert_eq(_enemy_instance.current_shield, 0, "Pajzs mértékének csökkenése változatlan")
|
||||
assert_eq(_enemy_instance.current_health, 55, "Életerő csökkenés hibás pajzs nélkül")
|
||||
|
Reference in New Issue
Block a user