This AI is still in early stages of development.
Test API
- Aubergine
Owned by Aubergine
A unit test framework for Warzone JS scripts...
Overview
The Test API provides a unit testing framework for JS scripts in Warzone 2100. It's inspired by, and loosely based on, the excellent QUnit testing framework.
Step 1
Include the Test API in your script:
include("path/to/Test.js");
Step 2
Define a Test() with a relevant Test Mode and Unit Tests function:
Test("My first test", Test.ANY( ), function() { // assertions go here });
Whenever you define a test, it gets added to a queue. Tests are run sequentially, one after the other with a small delay between each test (so the game doesn't freeze). You can also define asynchronous tests which are useful for testing events.
Step 3
A test is useless unless it tests stuff! Put some Test Assertions in your unit test:
Test("My first test", Test.ANY( ), function() { ok( true, "This assertion will pass" ); equal( false, true, "This assertion will fail" ); });
Test API
Topics:
- Test() — Define a unit test and it's configuration...
- Test Modules — A test module groups one or more unit tests and provides additional lifecycle settings for those tests...
- Test.module() — Allows multiple tests to be grouped together in to modules...
- Module Lifecycle Object — Configure the lifecycle of tests in the module...
- Test Modes — Defines the mode in which a unit test is run...
- Test.ANY( ) — The most basic unit test mode...
- Test.EXPECT( ) — Causes the test to fail if it does not generate the specified number of results...
- Test.ASYNCH( ) — Causes a test to keep running until it either passes, fails or times-out...
- Test.APPEND( ) — Appends results to a specific asynchronous test session...
- Unit Tests — The unit test function, responsible for performing one or more Test Assertions...
- Test Assertions — Assertions are used to perform various tests and annotations within a unit test...
- comment( ) — Adds a comment to the test results...
- ok( ) — A simple state checking assertion...
- hasNative( ) — Assert presence of a native property on the global object...
- hasFunction( ) — Check if a context has a function property, optionally with specified number of formal parameters...
- equal( ) — A basic equality checking assertion...
- notEqual( ) — A basic inequality checking assertion...
- strictEqual( ) — A strict equality checking assertion...
- notStrictEqual( ) — A strict inequality checking assertion...
- deepEqual( ) — A deep equality checking assertion...
- notDeepEqual( ) — A deep inequality checking assertion...
- similarTo( ) — A deep similarity checking assertion...
- notSimilarTo( ) — A deep dissimilarity spotting assertion...
- Test Signals — Signals are used to prematurely terminate Unit Tests...
- REQUIRE( ) — Check whether a test or group of tests have passed. If the requirement fails, a RequireSignal will be sent which terminates the current test and marks it as failed.
- ABORT( ) — Aborts the current test, marking it as failed in the process...
- FINISH( ) — Terminates the test as if it had finished normally...
- Test Events — Events defined by Test API...
- Test Results — After testing is finished, output results...
- Test API - Dev Notes — Developer notes for this API...
- Test API - possible future direction — Rough ideas for future development...