Module m_test_suite

Documentation for the modules-m_test_suite module in /std/modules/m_test_suite.c.

Module Information

This module should be inherited by test suites, typically all located in /std/tests/. It provides a lot of functions for queueing up tests, running them and various functions for cloning and testing the results.

To write a test inherit this file, and write a function:

inherit M_TEST_SUITE;

void my_test()
{
   return 1;
}

void init_tests()
{
   add_test_true("Some test",(: my_test:));
}

If you use add_test_true() the function succeeds if it returns 1 (anything that evaluates to true), and fails on 0. If you use add_test_fail(), quite the opposite. This allows both to assume something fails and something succeeds.

The test can be run by doing:

unittest mytest

If your file is called /std/tests/mytest.c

Functions

object lab_clone(string file)

Clones object from file argument and sends it to LAB room. The object is returned if cloned successfully.

object *std_clone(mixed *items)

Clone and return a list of items from ^std/ If only one of them fails, an empty list is returned.

int std_clone_move(object ob, mixed items)

Clones a list of items and moves them to ob. Returns true if all cloned and moved successfully, otherwise false.

varargs int inv_do(object who, string doo, string what, string check, int fail_on)

Object who does do what, e.g. troll does wear hat. Function does a call_other to the what in inventory for function check. Result of call_other will fail if value is fail_on.

Example:

inv_do(troll, "wield", "axe", "query_wielding", 0);

Troll wields axe, and if axe->query_wielding() == 0 we fail.

If check is set to “gone”, the test will return true if the object is gone.

varargs void add_test_true(string desc, function f, mixed args)

Add a test to the queue that should be considered successful if it returns a value evaluating to true.

add_test_true("Unwield longsword", ( : check_unwield, "sword" :));
add_test_true("Dualwield longsword", ( : check_dualwield, "longsword" :));
varargs void add_test_fail(string desc, function f, mixed args)

Add a test to the queue that should be considered successful if it returns a value evaluating to false.

add_test_fail("Wield greataxe", ( : check_wield, "axe" :));
add_test_fail("Wield longsword", ( : check_wield, "longsword" :));
void run_tests()

Run all the tests added and report results.

void stat_me()

Prints output about the test_suite. @./std/tests/horse->stat_me() e.g.

File generated by Lima 1.1a4 reStructured Text daemon.