天天看點

使用Titanium做單元測試

官方文檔中什麼也沒有提到,單元測試中可以使用喜歡的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]