使用Titanium做单元测试
官方文档中什么也没有提到,单元测试中可以使用喜欢的Javascript测试框架。因为不依赖浏览器,所以只要能确认Log输出的即可。
总之,为了在Titanium的控制台输出Log,Titanium.API.info和Titanium.API.error等能测试输出就可以了。
这回我们试着使用Unit系中流行的QUnit和BDD系的Jasmine。
使用QUnit
Titanium使用的Adapter已经在GitHub上公开了。
lukaso/qunit – GitHub
在自己的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的控制台上。
所以想输出的时候,按照喜欢的改写也是不难的事情。
在app.js中添加代码确认动作
app.js_snippet中,Tabgroup中追加单元测试用的Tab,只是简单的确认,单纯的在app.js的末尾追加一下行即可测试动作:
Titanium.include('runner.js');
module("QUnit on Titanium");test("OK test(pass)", function () { ok(true); });test("equal test(no pass)", function () { equal('hogehoge', 'hige'); });
Ti.include('jasmine/jasmine.js');Ti.include('jasmine/jasmine-titanium.js');describe("Jasmine Sample", function() { it("pass!", function() { var foo = 2; expect(foo).toEqual(2); } );});describe("Second Jasmine Sample", function() { it("fail!", function() { var foo = 1; expect(foo).toEqual(2); } );});jasmine.getEnv().addReporter(new jasmine.TitaniumReporter());jasmine.getEnv().execute();