Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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+
- Host: GitHub
- URL: https://github.com/pmarincak/gms2-test
- Owner: pmarincak
- License: mit
- Created: 2020-07-09T01:03:14.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-27T00:45:00.000Z (almost 2 years ago)
- Last Synced: 2024-08-02T07:08:47.825Z (3 months ago)
- Topics: game-development, gamemaker, gamemaker-language, gamemaker-studio-2, gml, unit-testing
- Language: Game Maker Language
- Homepage:
- Size: 31.3 KB
- Stars: 23
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-gamemaker - gms2-test - Unit testing framework. (Debugging / Recommendations)
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 Package1. 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)