1 | Test Method | Test Condition | Expected Result | Pass? | Notes | Key | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |||||||
3 | LwjglTestRunnerTest#RunsWithoutExceptions | LwjglTestRunner runs a test without exceptions. | The test passes. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | No. | Merge | ||
4 | LwjglTestRunnerTest#CausesAnExceptionWhenExpected | LwjglTestRunner runs a test with exceptions. | The test fails. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 1 | #21 Box2d | ||
5 | CharacterTest#CanAccessMaxHealth | A Character was created with a certain max health. | Character#getMaximumHealth() is equal to the original maximum health. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 2 | #24 Add an LWJGL Test Runner. | ||
6 | CharacterTest#CanAccessCurrentHealth | A Character was created with a certain max health. | Without updating, Character#getCurrentHealth() is equal to the maximum health. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 3 | #25 Added SurvivalObjective | ||
7 | CharacterTest#CanBeDamaged | A Character was damaged by a certain amount. | Character#getCurrentHealth() is equal to the maximum health - damage. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 4 | #23 Create LICENSE | ||
8 | CharacterTest#CanBeKilled | A Character is damaged more than their max health. | Character#isDead() is true. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 5 | |||
9 | CharacterTest#IsHealable | A Character is damaged, and then healed. | Character#getCurrentHealth() is equal to the maximum - damage + heal. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 6 | #28 Water | ||
10 | CharacterTest#CannotBeHealedPastMax | A Character is damaged, and healed past max health. | Character#getCurrentHealth() is equal to Character#getMaximumHealth(). | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 7 | #29 Minimap | ||
11 | ObjectiveTest#HasCorrectObjectiveString | An Objective is created with a given name. | Objective#getObjectiveString() is the same as the name. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 8 | #31 Map screen | ||
12 | ObjectiveTest#IsUpdated | An Objective is created. | Objective#update() lets the objective's logic update. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 9 | #32 Weapons | ||
13 | ObjectiveTest#IsOngoingByDefault | An Objective is created. | Objective#getStatus() is ONGOING by default. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | 10 | Music | ||
14 | ParticleTest#NotRemovedBeforeDuration | A Particle is created with a given duration. | Particle#isRemoved() is false after an update smaller than its duration. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | ||||
15 | ParticleTest#RemovedAfterDuration | A Particle is created with a given duration. | Particle#isRemoved() is true after an update larger than its duration. | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Passed | ||
16 | PathfindingAITest#ChasesPlayerHorizontally | A Player and a Mob with PathfindingAI is created. | The mob is horizontally closer to the player. | I | I | I | I | I | I | I | I | I | I | The tests are ignored because the class has Round as a dependency. Round is a very heavy class that does a variety of complex tasks and has a large number of dependencies that cannot be easily mocked or separated. | I | Ingnored | |
17 | PathfindingAITest#ChasesPlayerVertically | A Player and a Mob with PathfindingAI is created. | The mob is vertically closer to the player. | I | I | I | I | I | I | I | I | I | I | ||||
18 | PathfindingAITest#StopsIfRangeProvided | A Player and a Mob with PathfindingAI is created with a range. | The mob stops within a certain range of the player. | I | I | I | I | I | I | I | I | I | I | ||||
19 | PathfindingAITest#TakesExpectedRouteAroundObstacle | A Player and a Mob with PathfindingAI is created in a test level. | The mob goes around obstacles and reaches the player. | I | I | I | I | I | I | I | I | I | I | ||||
20 | ProjectileTest#StartsAtCorrectPosition | A Projectile is created with a given position. | Projectile#getPosition() is the original position. | I | I | I | I | I | I | I | I | I | I | ||||
21 | PlayerTest#StartsAtCorrectPosition | A Player is created with a given position. | Player#getPosition() is the original position. | I | I | I | I | I | I | I | I | I | I | LibGDX generates an obscure error (java.lang.UnsatisfiedLinkError) when running under the testing conditions. This is probably because Box2D (the physics library) requires a display to be able to work. | |||
22 | PlayerTest#ScoreStartsAtZero | A Player is created. | Player#getScore() is zero by default. | I | I | I | I | I | I | I | I | I | I | ||||
23 | PlayerTest#CanAddScore | A Player is created and some points are added. | Player#getScore() is equal to the points added. | I | I | I | I | I | I | I | I | I | I | ||||
24 | PlayerTest#CanAddPickup | A Player is created and a Pickup is added to it. | The Pickup is accessible from the Player. | I | I | I | I | I | I | I | I | I | I | ||||
25 | PlayerTest#ScoreMultiplierWorks | A Player is created, a Score Multiplier and the score is added. | Player#getScore() is PLAYER_SCORE_MULTIPLIER x score added. | I | I | I | I | I | I | I | I | I | I | ||||
26 | PlayerTest#CannotBeDamagedWhenInvulnerable | A Player is created, Invulnerability is added and is damaged. | Player#getHealth() does not change. | I | I | I | I | I | I | I | I | I | I | ||||
27 |