我是GML和TDD的超級n00bs。我想將測試驅動的開發和單元測試練習到GML的Game Maker語言。由於GML是事件驅動的,它有可能嗎?我沒有找到關於如何在GML中實現單元測試和測試驅動開發的很多示例或教程。TDD和單元測試,GML Game Maker語言
你如何在遊戲製造者語言中編寫單元測試?
我是GML和TDD的超級n00bs。我想將測試驅動的開發和單元測試練習到GML的Game Maker語言。由於GML是事件驅動的,它有可能嗎?我沒有找到關於如何在GML中實現單元測試和測試驅動開發的很多示例或教程。TDD和單元測試,GML Game Maker語言
你如何在遊戲製造者語言中編寫單元測試?
你可以單元測試任何可以用可驗證結果隔離調用的東西。
我不知道GML,但是我可以從wikipedia中看到它是一種特殊用途的腳本語言。如果您可以從通常運行的任何位置調用這樣的腳本,並且可以檢查可以測試的結果。
然而,
"GML is heavily integrated with the Game Maker environment."
可能意味着你不能叫孤立任何腳本或功能。
我已經開始專門爲GML編寫測試框架。它叫做hobo_test,你可以在github找到它。目標是提供一組對象/腳本,您可以拖放到任何項目中(從查找器中),然後開始編寫一些簡單的測試。
with(o_player)
{
before_lives = num_lives
take_damage();
it("should decrease the number of lives", before_lives-1, num_lives);
}
這將更新TEST
對象,將吸引所有的測試結果(綠點成功,紅色爲失敗)在櫃檯上。如果測試失敗,它將打印出您已經寫入的預期和實際結果的should語句。
我發現GML的侷限性導致我寫了很多幫助器方法,並且缺乏異常處理。
據我所知,這是GameMaker的唯一現有測試框架,並且在開發遊戲時還有很長的路要走,以便完成TDD。 (我能夠用當前迭代編寫掃雷器克隆)。我計劃繼續這個項目的發展,並希望能夠使它更加強大和更輕鬆地使用。