Skip to content

Sprint 2 Test Plan

LJ edited this page Sep 12, 2024 · 23 revisions

Test Objectives:

In this sprint, we added a bear enemy to the game which will be the strongest enemy of the forest biome which has the combat stats, including health, attack, defense, and speed. Moreover, monkey Throwing banana is to enhance the behavior of Monkey enemy NPCs by implementing a new feature where they can throw bananas and spawn banana items within the game. This will add a unique attack mechanic and a new item for players to interact with (dodge).

Features Added

  • New Enemy Bear: combat stats for bear are health, attack, defense, and speed.

  • Monkey Throwing banana functionality and animations: Adding Projectile entities for banana throwing

  • Banana Spawn: Every monkeys spawn banana items once in the game. These bananas will later make minor damage.

  • Animation and UI Enhancements: Smooth animations for the enemy image and text labels.

Testing Approach

The following test styles were used during the testing process for Sprint 2

  • Execution
  • Pass/fail (JUnit assertions)
  • Visual Inspection

Test Areas:

Test cases have been added to test new classes that have been created

Test Documentation

Projectile Factory Tests

Tests the creation of projectiles, which is currently only the banana, to ensure they are instantiated correctly with the necessary components.

Methods

  • TestBananaCreation(): Tests the creation of a banana projectile.
  • TestBananaIsEntity(): Verifies that the created banana is an instance of the Entity class.
  • TestBananaHasComponents(): Ensures that the banana has all required components, such as PhysicsComponent, PhysicsMovementComponent, BananaAnimationController, ProjectileAttackComponent, HitboxComponent, and ColliderComponent.

Touch Attack Component Tests

Tests the TouchAttackComponent to verify that it correctly handles collision-based attack logic.

Methods

View Touch Attack Component Tests

  • shouldNotAttackOtherLayer(): Verifies that the attack does not occur if the target entity is on a different physics layer.
  • shouldNotAttackWithoutCombatComponent(): Ensures that the attack is ignored if the target entity does not have a CombatStatsComponent.

Shoot Task Tests

Tests the ShootTask to verify its behaviour for firing projectiles when within range and the correct wait time has elapsed.

Methods

  • shouldShootWhenInRangeAndWaitTimeElapsed(): Verifies that the ShootTask fires a projectile (triggers the "FireBanana" event) when the target is within range and the wait time has passed.
  • shouldShootOnlyWhenInDistance(): Ensures that the ShootTask only fires when the target is within a specified distance range and does not shoot when the target is too far away.

Enemy Combat Cut Scene Test

Visual testing to verify that the cut-scene for enemies before combat is triggering correctly, displaying and formatting correctly as well. The videos recording the functionalities as a test can be found below:

Bear Combat Cut Scene Visual Test

Frog Combat Cut Scene Visual Test

The syntax isn't easy to remember if you don't use it often, but here you go, with the link you provided:

FrogTransitonToCombat.mp4
Clone this wiki locally