中秋連假一下就過完了,
本來想三天至少有一天能夠專心看程式,
沒想到被其他瑣事纏身,三天就這麼過去了
今天繼續看Garmin的文件,按照目前的進度...
我擔心30天也看不完,不過還是盡力而為吧!
在Monkey C有以下幾種annotation可以加在class、function、variable,
作用是告訴編譯器這段code的特定用途
1.(:background)
告訴編譯器這段code可以在背景執行
2.(:debug)
告訴編譯器這段code是測試debug使用,編譯正式版本時就不會被包進去
3.(:release)
告訴編譯器這段code是正式版本使用,編譯debug版本時不會被包進去
4.(:test)
告訴編譯器這段code可用於測試module,進行"Run No Evil"測試
範例如下:
class TestMethods {
(:test)
static function testThisClass(x)
}
"Run No Evil"是什麼?
我本來以為"Run No Evil"是什麼新的測試術語,
結果原來是Garmin在Connect IQ SDK放的一個單元測試框架
"Run No Evil"僅限作用於Connect IQ模擬器,可以用來debug、執行單元測試,
單元測試有以下幾點要求,
1.程式碼要標明(:test)
2.測試用的function必須要取得一個Test.Logger物件
3.非全域的測試function必須要是static function
範例如下:
// Unit test to check if 2 + 2 == 4
(:test)
function myUnitTest(logger as Logger) as Boolean {
var x = 2 + 2; logger.debug("x = " + x);
return (x == 4); // returning true indicates pass, false indicates failure
}