Yogstation 13 - Modules - TypesDefine Details

code/modules/unit_tests/_unit_tests.dm

TEST_FAILFor advanced cases, fail unconditionally but don't return (so a test can return multiple results)
TEST_ASSERTAsserts that a condition is true If the condition is not true, fails the test
TEST_ASSERT_NOTNULLAsserts that a parameter is not null
TEST_ASSERT_NULLAsserts that a parameter is null
TEST_ASSERT_EQUALAsserts that the two parameters passed are equal, fails otherwise Optionally allows an additional message in the case of a failure
TEST_ASSERT_NOTEQUALAsserts that the two parameters passed are not equal, fails otherwise Optionally allows an additional message in the case of a failure
TEST_FOCUSOnly run the test provided within the parentheses This is useful for debugging when you want to reduce noise, but should never be pushed Intended to be used in the manner of TEST_FOCUS(/datum/unit_test/math)
TEST_NOTICELogs a noticable message on GitHub, but will not mark as an error. Use this when something shouldn't happen and is of note, but shouldn't block CI. Does not mark the test as failed.
UNIT_TEST_PASSEDConstants indicating unit test completion status
TEST_LONGERAfter most test steps, used for tests that run long so shorter issues can be noticed faster
TEST_CREATE_AND_DESTROYThis must be the one of last tests to run due to the inherent nature of the test iterating every single tangible atom in the game and qdeleting all of them (while taking long sleeps to make sure the garbage collector fires properly) taking a large amount of time.
TEST_AFTER_CREATE_AND_DESTROYFor tests that rely on create and destroy having iterated through every (tangible) atom so they don't have to do something similar. Keep in mind tho that create and destroy will absolutely break the test platform, anything that relies on its shape cannot come after it.
TRAIT_SOURCE_UNIT_TESTSA trait source when adding traits through unit tests

Define Details

TEST_AFTER_CREATE_AND_DESTROY

For tests that rely on create and destroy having iterated through every (tangible) atom so they don't have to do something similar. Keep in mind tho that create and destroy will absolutely break the test platform, anything that relies on its shape cannot come after it.

TEST_ASSERT

Asserts that a condition is true If the condition is not true, fails the test

TEST_ASSERT_EQUAL

Asserts that the two parameters passed are equal, fails otherwise Optionally allows an additional message in the case of a failure

TEST_ASSERT_NOTEQUAL

Asserts that the two parameters passed are not equal, fails otherwise Optionally allows an additional message in the case of a failure

TEST_ASSERT_NOTNULL

Asserts that a parameter is not null

TEST_ASSERT_NULL

Asserts that a parameter is null

TEST_CREATE_AND_DESTROY

This must be the one of last tests to run due to the inherent nature of the test iterating every single tangible atom in the game and qdeleting all of them (while taking long sleeps to make sure the garbage collector fires properly) taking a large amount of time.

TEST_FAIL

For advanced cases, fail unconditionally but don't return (so a test can return multiple results)

TEST_FOCUS

Only run the test provided within the parentheses This is useful for debugging when you want to reduce noise, but should never be pushed Intended to be used in the manner of TEST_FOCUS(/datum/unit_test/math)

TEST_LONGER

After most test steps, used for tests that run long so shorter issues can be noticed faster

TEST_NOTICE

Logs a noticable message on GitHub, but will not mark as an error. Use this when something shouldn't happen and is of note, but shouldn't block CI. Does not mark the test as failed.

TRAIT_SOURCE_UNIT_TESTS

A trait source when adding traits through unit tests

UNIT_TEST_PASSED

Constants indicating unit test completion status