总之,为了在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的末尾追加一下行即可测试动作:
Js代码
Titanium.include('runner.js');
- 1.
确认动作的test/tests_to_run.js
为了确认动作,什么测试也没有写,只是测试QUnit的动作的例子代码:
module("QUnitonTitanium");
test("OKtest(pass)",function(){
ok(true);
}
);
test("equaltest(nopass)",function(){
equal('hogehoge','hige');
}
);
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
动作结果会很好的输出到Titanium的控制台上。
顺便说一下,由于结果中包含了HTML代码,很难理解。使用QUnit-TAP不是很好。
使用Jasmine
Jasmine中,能够自定义测试出力的Reporter,所以可以做成Titanium用的Reporter。
jasmine.js中,提供了基本的Reporter类,可以根据它做成自己的Reporter类。
实际编码的时候可以参考Jasmine官方发布版本中的jasmin-html.js和jasmine.console_reporter.js。
包含了很好出力的Reporter的JasmineTitanium也已经公开了。
在app.js中添加代码确认动作
还没有任何测试内容,只是确认Jasmine动作的例子代码。
前提是在Resorses/jasmine中,jasmine.js和jasmine-titanium.js(上边的TitaniumReporter)
Js代码
Ti.include('jasmine/jasmine.js');
Ti.include('jasmine/jasmine-titanium.js');
describe("JasmineSample",function(){
it("pass!",function(){
varfoo=2;
expect(foo).toEqual(2);
}
);
});
describe("SecondJasmineSample",function(){
it("fail!",function(){
varfoo=1;
expect(foo).toEqual(2);
}
);
});
jasmine.getEnv().addReporter(newjasmine.TitaniumReporter());
jasmine.getEnv().execute();
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
执行结束后,就能看到失败的测试和合计结果。
实际的开发中,应该把测试代码统一放在spec文件夹中比较好。
注:
没有spec文件夹或者文件夹为空是不能启动的。