TestService 是 Roblox 內部使用的服務,可以在遊戲內執行分析測試。它讓您可以在遊戲內直接編寫複雜的測試。
樣式
在 TestService 內執行的腳本 (via TestService:Run() ) 有 access to 特殊的 macros 直接在 TestService 中呼叫功能。 macros 是基於代碼的大型代碼塊,不需要每次你想要呼叫它們時重新編寫。
RBX_檢查
這個 macro 使用 TestService:Check() 函數進行測試。
<tr>
<td>RBX\_CHECK(條件)</td>
<td>cond == 是</td>
</tr>
<tr>
<td>RBX\_CHECK\_MESSAGE(cond, failMsg)</td>
<td>cond == 是</td>
</tr>
<tr>
<td>RBX\_CHECK\_THROW(代碼)</td>
<td>pcall(function() 結束) == false</td>
</tr>
<tr>
<td>RBX\_CHECK\_NO\_THROW(代碼)</td>
<td>pcall(function() en結束) 代碼</td>
</tr>
<tr>
<td>RBX\_CHECK\_EQUAL(a, b)</td>
<td>a == b</td>
</tr>
<tr>
<td>RBX\_CHECK\_NE(a, b)</td>
<td>a#b</td>
</tr>
<tr>
<td>RBX\_CHECK\_GE(a, b)</td>
<td>a >= b</td>
</tr>
<tr>
<td>RBX\_CHECK\_LE(a, b)</td>
<td>a ← b</td>
</tr>
<tr>
<td>RBX\_CHECK\_GT(a, b)</td>
<td>a > b</td>
</tr>
<tr>
<td>RBX\_CHECK\_LT(a, b)</td>
<td>一個 \< b</td>
</tr>
微波爐 | 測試條件 |
RBX_需要
這個 macro 使用 TestService:Require() 函數進行測試。
<tr>
<td>RBX\_需要(cond)</td>
<td>cond == 是</td>
</tr>
<tr>
<td>RBX\_需要\_訊息(cond, failMsg)</td>
<td>cond == 是</td>
</tr>
<tr>
<td>RBX\_需要\_投擲(COD)</td>
<td>pcall(function() 結束) == false</td>
</tr>
<tr>
<td>RBX\_REQUIRE\_NO\_THROW(代碼)</td>
<td>pcall(function() en結束) 代碼</td>
</tr>
<tr>
<td>RBX\_需要\_等同(a,b)</td>
<td>a == b</td>
</tr>
<tr>
<td>RBX\_REQUIRE\_NE(a, b)</td>
<td>a#b</td>
</tr>
<tr>
<td>RBX\_需要\_GE(a,b)</td>
<td>a >= b</td>
</tr>
<tr>
<td>RBX\_需要\_Le(a,b)</td>
<td>a ← b</td>
</tr>
<tr>
<td>RBX\_需要\_GT(a,b)</td>
<td>a > b</td>
</tr>
<tr>
<td>RBX\_需要\_LT(a,b)</td>
<td>一個 \< b</td>
</tr>
微波爐 | 測試條件 |
RBX_警告
這個 macro 使用 TestService:Warn() 函數進行測試。
<tr>
<td>RBX\_ WARN(cond)</td>
<td>cond == 是</td>
</tr>
<tr>
<td>RBX\_ WARN\_ 訊息 (cond, failMsg)</td>
<td>cond == 是</td>
</tr>
<tr>
<td>RBX\_ WARN\_ THROW (代碼)</td>
<td>pcall(function() 結束) == false</td>
</tr>
<tr>
<td>RBX\_WARN\_NO\_THROW(代碼)</td>
<td>pcall(function() en結束) 代碼</td>
</tr>
<tr>
<td>RBX\_WARN\_EQUAL(a, b)</td>
<td>a == b</td>
</tr>
<tr>
<td>RBX\_WARN\_NE(a, b)</td>
<td>a#b</td>
</tr>
<tr>
<td>RBX\_WARN\_GE(a, b)</td>
<td>a >= b</td>
</tr>
<tr>
<td>RBX\_WARN\_LE(a, b)</td>
<td>a ← b</td>
</tr>
<tr>
<td>RBX\_警告(a,b)</td>
<td>a > b</td>
</tr>
<tr>
<td>RBX\_WARN\_LT(a, b)</td>
<td>一個 \< b</td>
</tr>
微波爐 | 測試條件 |
額外的 Macros
<tr><td>RBX\_ERROR(訊息)</td><td>直接呼叫 <code>Class.TestService:Error()</code> 函數。</td></tr><tr><td>RBX\_失敗(msg)</td><td>直接呼叫 <code>Class.TestService:Fail()</code> 函數。</td></tr><tr><td>RBX\_訊息(msg)</td><td>直接呼叫 <code>Class.TestService:Message()</code> 函數。</td></tr>
微波爐 | 說明 |
概要
屬性
設為真,遊戲將在TestService的 TestService:Run() 方法呼叫時開始執行。
測試正在執行的說明。
測作業會記錄的錯誤數量。
設為真時,TestService 將在 Roblox Studio 中使用 Run 動作時執行。
設定是否要在測試執行時將物理引擎設置為30FPS,或者是否要設置為30FPS,而不是設置為60FPS。
設定是否啟用物理環境在執行此測試時會被限速。
設定是否允許物理對象在測試模擬器執行時睡眠。
如有的話,這次測試預期的玩家數。
設定玩家在測試會作業中體驗到的額外延遲量。
測量測試會議的召集數。
測試可以執行的最大時間。
測試會作業中記錄了多少警告呼叫。
方法
列出結果的條輸出。
列出 "測試檢查點:", 跟隨文本, 到輸出, 在藍色文字。
列印測試完成後的輸出,為藍色文字。
列出一個紅色訊息到輸出,以 TestService: 的前缀。
指示TestService執行中發生的死亡錯誤。如果此錯誤在TestService內部的執行程式碼中呼叫,則會啟動TestService內部的一個休息點。
列出測試訊息,並在輸出上輸入文本。
列出條件是否以及說明文字。
如果條件是真的,它會列出警告。
執行與 TestService 有關的指令碼。
活動
- ServerCollectConditionalResult(condition : bool,text : string,script : Instance,line : number):RBXScriptSignal
發射時,當服務器收集條件測試結果。
發射時,當服務器應該收集測試結果。
屬性
ExecuteWithStudioRun
設為真時,TestService 將在 Roblox Studio 中使用 Run 動作時執行。
注意:
- 如果 TestService.NumberOfPlayers 屬性設為超過 0 ,執行遊戲會開啟 NumberOfPlayers + 1 個工作室窗口,其中一個窗戶是服務伺服器,其餘是連接到服務伺服器的玩家。
- 嘗試將此值內在合理範圍內(最多 1 至 8 名玩家),否則您的電腦的CPU 可能會過載。
方法
Check
如果條件是真的,它會打印 "Check passed: ",並在輸出後跟隨說明,但是是以藍色文字打印。 否則,它會打印 "Check failed: ",再次,跟隨說明,但是是以紅色文字打印。
參數
返回
範例程式碼
local TestService = game:GetService("TestService")
TestService:Check(false, "example")
Checkpoint
列出 "測試檢查點:" ,然後是 文字 ,在輸出,是以藍色文字列出。
參數
返回
範例程式碼
local TestService = game:GetService("TestService")
TestService:Checkpoint("example")
Done
列印 測試完成 到輸出,是以藍色文字。
返回
範例程式碼
local TestService = game:GetService("TestService")
TestService:Done()
Error
列出一個紅色訊息到輸出,以 TestService: 的前缀。
參數
返回
範例程式碼
local TestService = game:GetService("TestService")
TestService:Error("this is an error")
Fail
指示TestService執行中發生的死亡錯誤。如果此錯誤在TestService內部的執行程式碼中呼叫,則會啟動TestService內部的一個休息點。
參數
返回
Message
列印 測試訊息,之後是 文字 到輸出,是藍色文字。
參數
返回
範例程式碼
local TestService = game:GetService("TestService")
TestService:Message("example")
Require
如果 condition 是真的,它會列出 Require passed: ,然後是 description ,以輸出在藍色文本中。否則,它會列出 1> require failed. 測試結束:1> ,然後是 4> descriptio說明4> ,以輸出在紅色文本中。
參數
返回
範例程式碼
local TestService = game:GetService("TestService")
TestService:Require(false, "example")
Warn
如果 條件 是真的,它會列印 警告通過: ,然後跟隨 說明: ,到輸出,在藍色文字。 否則,它會列印 1> 警告:1> ,然後跟隨 4> 說明:4> ,到輸出,在黃色文字。
參數
返回
範例程式碼
local TestService = game:GetService("TestService")
TestService:Warn(false, "this action is invalid")
Run
執行與 TestService 有關的指令碼。