TestService
The TestService is a service used by Roblox internally to run analytical tests on their engine. It makes it possible to write sophisticated tests right inside a game.
Macros
Scripts that are executed inside of the TestService (via TestService:Run()) have access to special macros that directly invoke functions under the TestService. Macros are essentially substitutions for large blocks of code that shouldn't need to be rewritten each time you want to call them.
RBX_CHECK
This macro does tests with calls to the TestService:Check() function.
Macro | Test Condition |
RBX_CHECK(cond) | cond == true |
RBX_CHECK_MESSAGE(cond, failMsg) | cond == true |
RBX_CHECK_THROW(CODE) | pcall(function() CODE end) == false |
RBX_CHECK_NO_THROW(CODE) | pcall(function() CODE end) == true |
RBX_CHECK_EQUAL(a,b) | a == b |
RBX_CHECK_NE(a,b) | a ~= b |
RBX_CHECK_GE(a,b) | a >= b |
RBX_CHECK_LE(a,b) | a <= b |
RBX_CHECK_GT(a,b) | a > b |
RBX_CHECK_LT(a,b) | a < b |
RBX_REQUIRE
This macro does tests with calls to the TestService:Require() function.
Macro | Test Condition |
RBX_REQUIRE(cond) | cond == true |
RBX_REQUIRE_MESSAGE(cond, failMsg) | cond == true |
RBX_REQUIRE_THROW(CODE) | pcall(function() CODE end) == false |
RBX_REQUIRE_NO_THROW(CODE) | pcall(function() CODE end) == true |
RBX_REQUIRE_EQUAL(a,b) | a == b |
RBX_REQUIRE_NE(a,b) | a ~= b |
RBX_REQUIRE_GE(a,b) | a >= b |
RBX_REQUIRE_LE(a,b) | a <= b |
RBX_REQUIRE_GT(a,b) | a > b |
RBX_REQUIRE_LT(a,b) | a < b |
RBX_WARN
This macro does tests with calls to the TestService:Warn() function.
Macro | Test Condition |
RBX_WARN(cond) | cond == true |
RBX_WARN_MESSAGE(cond, failMsg) | cond == true |
RBX_WARN_THROW(CODE) | pcall(function() CODE end) == false |
RBX_WARN_NO_THROW(CODE) | pcall(function() CODE end) == true |
RBX_WARN_EQUAL(a,b) | a == b |
RBX_WARN_NE(a,b) | a ~= b |
RBX_WARN_GE(a,b) | a >= b |
RBX_WARN_LE(a,b) | a <= b |
RBX_WARN_GT(a,b) | a > b |
RBX_WARN_LT(a,b) | a < b |
Additional Macros
Macro | Description |
RBX_ERROR(msg) | Directly calls the TestService:Error() function. |
RBX_FAIL(msg) | Directly calls the TestService:Fail() function. |
RBX_MESSAGE(msg) | Directly calls the TestService:Message() function. |
Summary
Properties
If set to true, the game will start running when the TestService's TestService:Run() method is called.
A description of the test being executed.
Measures how many errors have been recorded in the test session.
When set to true, the TestService will be executed when using the Run action in Roblox Studio.
Sets whether or not the physics environment should be throttled while running this test.
Sets whether or not physics objects will be allowed to fall asleep while the test simulation is running.
The number of players expected in this test, if any.
Sets a specific amount of additional latency experienced by players during the test session.
Measures how many test calls have been recorded in the test session.
Sets whether the test should be throttled to simulate time according to real world time or as fast as possible.
The maximum amount of time that tests are allowed to run for.
Measures how many warning calls have been recorded in the test session.
Methods
Prints result of condition to output.
Prints "Test checkpoint: ", followed by text, to the output, in blue text.
Prints Testing Done to the output, in blue text.
Prints a red message to the output, prefixed by TestService: .
Indicates a fatal error in a TestService run. If this is called inside of a script running inside of the TestService, this will initiate a breakpoint on the line that invoked the error.
Prints Test message, followed by text to the output, in blue text.
Prints whether a condition is true along with description text.
Runs scripts which are parented to TestService.
Prints if a condition is true, otherwise prints a warning.
Events
- ServerCollectConditionalResult(condition : boolean,text : string,script : Instance,line : number):RBXScriptSignal
Fired when the server should collect a conditional test result.
Fired when the server should collect a test result.
Properties
Methods
Check
Parameters
Returns
Code Samples
local TestService = game:GetService("TestService")
TestService:Check(false, "example")
Checkpoint
Parameters
Returns
Code Samples
local TestService = game:GetService("TestService")
TestService:Checkpoint("example")
Done
Returns
Code Samples
local TestService = game:GetService("TestService")
TestService:Done()
Error
Parameters
Returns
Code Samples
local TestService = game:GetService("TestService")
TestService:Error("this is an error")
Fail
Parameters
Returns
Message
Parameters
Returns
Code Samples
local TestService = game:GetService("TestService")
TestService:Message("example")
Require
Parameters
Returns
Code Samples
local TestService = game:GetService("TestService")
TestService:Require(false, "example")
Run
Returns
Warn
Parameters
Returns
Code Samples
local TestService = game:GetService("TestService")
TestService:Warn(false, "this action is invalid")