官方文檔中什麼也沒有提到,單元測試中可以使用喜歡的Javascript測試架構。因為不依賴浏覽器,是以隻要能确認Log輸出的即可。
總之,為了在Titanium的控制台輸出Log,Titanium.API.info和Titanium.API.error等能測試輸出就可以了。
這回我們試着使用Unit系中流行的QUnit和BDD系的Jasmine。
[size=medium][b]使用QUnit[/b][/size]
Titanium使用的Adapter已經在GitHub上公開了。
[url=https://github.com/lukaso/qunit]lukaso/qunit – GitHub[/url]
在自己的Project使用的時候,Resources檔案夾下儲存一下檔案就可以了。
* runner.js
* qunit/qunit.js
* qunit/titanium_adaptor.js
* test/tests_to_run.js
然後,在test/tests_to_run.js中寫測試内容。 在app.js的任何位置把runner.js檔案include後運作即可。
檢視titanium_adaptor.js的内容,我們可以看到,它做的事情就是利用QUnit的Logging處理把Log輸出到Titanium的控制台上。
是以想輸出的時候,按照喜歡的改寫也是不難的事情。
[b]在app.js中添加代碼确認動作[/b]
app.js_snippet中,Tabgroup中追加單元測試用的Tab,隻是簡單的确認,單純的在app.js的末尾追加一下行即可測試動作:
Titanium.include('runner.js');
[b]确認動作的test/tests_to_run.js[/b]
為了确認動作,什麼測試也沒有寫,隻是測試QUnit的動作的例子代碼:
動作結果會很好的輸出到Titanium的控制台上。
順便說一下,由于結果中包含了HTML代碼,很難了解。使用QUnit-TAP不是很好。
[size=medium][b]使用Jasmine[/b][/size]
Jasmine中,能夠自定義測試出力的Reporter,是以可以做成Titanium用的Reporter。
jasmine.js中,提供了基本的Reporter類,可以根據它做成自己的Reporter類。
實際編碼的時候可以參考Jasmine官方釋出版本中的jasmin-html.js和[url=https://github.com/larrymyers/jasmine-reporters/blob/master/src/jasmine.console_reporter.js]jasmine.console_reporter.js[/url]。
包含了很好出力的Reporter的[url=https://github.com/akahigeg/jasmine-titanium]Jasmine Titanium[/url]也已經公開了。
[b]在app.js中添加代碼确認動作[/b]
還沒有任何測試内容,隻是确認Jasmine動作的例子代碼。
前提是在Resorses/jasmine中,jasmine.js和jasmine-titanium.js(上邊的TitaniumReporter)
執行結束後,就能看到失敗的測試和合計結果。
實際的開發中,應該把測試代碼統一放在spec檔案夾中比較好。
注:
沒有spec檔案夾或者檔案夾為空是不能啟動的。
【原文】[url=http://higelog.brassworks.jp/?p=692]Titaniumでユニットテスト[/url]