Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pmarincak/gms2-test

Unit Testing Framework for Gamemaker Studio 2.3+
https://github.com/pmarincak/gms2-test

game-development gamemaker gamemaker-language gamemaker-studio-2 gml unit-testing

Last synced: 8 days ago
JSON representation

Unit Testing Framework for Gamemaker Studio 2.3+

Awesome Lists containing this project

README

        

# gms2-test
Unit Testing Framework for Gamemaker Studio 2.3+

## Table of Contents

1. [Requirements](#requirements)
2. [Download](#download)
- [Local Package](#local-package)
- [Marketplace](#marketplace)
3. [Maintainers & Contribution](#maintainers--contribution)
4. [Samples](#samples)
5. [API](#api)
- [Helpers](#helpers)
- [Matchers](#matchers)
- [Test Definitions](#test-definitions)
6. [Unit Testing Resources](#unit-testing-resources)

## Requirements

|| Supported Version |
|--|--|
| Gamemaker Studio 2 | v2.3.0.x |

## Download
### Local Package

1. Download the [exported local package](https://github.com/pmarincak/gms2-test/blob/master/export/package.gmltest.yymps)
2. Select Tools > Import Local Package
3. Navigate to the saved package and select import
4. Import all resources

### Marketplace

This package is available for download on the [Gamemaker Marketplace](https://marketplace.yoyogames.com/assets/9280/gms2-test).

## Maintainers & Contribution
This package is maintained by [Paige Marincak](https://twitter.com/paigemarincak/). To contribute, please fork the repo and make pull requests.

## Samples
Samples can be viewed [here](https://github.com/pmarincak/gms2-test/tree/master/samples).

## API
### Helpers
#### gmltest_start
Start running the unit tests

#### gmltest_set_deterministic
Sets the seed to a static value or a random value. Can be toggled.

@param {Bool} deterministic Whether to set the seed to a static value or not

### Matchers
#### gmltest_expect_eq
Expects that the actual value is equal to the expected value

@param {*} expected
@param {*} actual

#### gmltest_expect_false
Expects that the provided value is false

@param {*} value

#### gmltest_expect_true
Expects that the provided value is true

@param {*} value

#### gmltest_expect_gt
Expects that the actual value is greater than the expected value

@param {*} expected
@param {*} actual

#### gmltest_expect_lt
Expects that the actual value is less than the expected value

@param {*} expected
@param {*} actual

#### gmltest_expect_neq
Expects that the actual value is not equal to the expected value

@param {*} expected
@param {*} actual

#### gmltest_expect_not_null
Expects that the provided value is not null

@param {*} value

#### gmltest_expect_null
Expects that the provided value is null

@param {*} value

### Test Definitions
#### GMLTest_Harness
Base struct that all harnesses should extend from

///@description Called before the execution of the test.
/// Use this function to setup your fixtures and parameterized tests.
function setup(){
// Override this function
}

///@description Called after the execution of the test.
/// Use this function to clean up your fixtures and parameterized tests.
function tear_down(){
// Override this function
}
#### test
Register a basic test with a name and a function to execute

@param {String} name The name of the test to be logged to the console
@param {Function} fn The function to be executed
#### xtest
Disable a registered basic test that has a name and a function to execute

@param {String} name The name of the test to be logged to the console
@param {Function} fn The function to be executed
#### test_f
Register a fixture test with a harness, name and a function to execute

@param {Struct} harness The struct to use as the harness when the test executes
@param {String} name The name of the test to be logged to the console
@param {Function} fn The function to be executed

#### xtest_f
Disable a registered fixture test that has a harness, name and a function to execute

@param {Struct} harness The struct to use as the harness when the test executes
@param {String} name The name of the test to be logged to the console
@param {Function} fn The function to be executed

#### test_p
Register a parameterized test with a harness, name, array of parameters, and a function to execute

@param {Struct} harness The struct to use as the harness when the test executes
@param {String} name The name of the test to be logged to the console
@param {Array} array An array containing a list of parameters to be executed using the same provided function
@param {Function} fn The function to be executed which takes one parameter

#### xtest_p
Disable a registered parameterized test that has a harness, name, array of parameters, and a function to execute

@param {Struct} harness The struct to use as the harness when the test executes
@param {String} name The name of the test to be logged to the console
@param {Array} array An array containing a list of parameters to be executed using the same provided function
@param {Function} fn The function to be executed which takes one parameter

## Unit Testing Resources
The following are a list of resources that can assist you with writing your unit tests.

- [What is unit testing?](https://en.wikipedia.org/wiki/Unit_testing)
- [What is a fixture?](https://en.wikipedia.org/wiki/Test_fixture)
- [Beginner's Guide to Unit Testing](https://www.codementor.io/@wbsimms/unit-testing-foundations-programming-beginners-du107q81d)