使用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的末尾追加一下行即可测试动作:

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文件夹或者文件夹为空是不能启动的。

责任编辑:佚名 来源: tidevcn
相关推荐

2017-01-16 12:12:29

单元测试JUnit

2017-01-14 23:26:17

单元测试JUnit测试

2017-01-14 23:42:49

单元测试框架软件测试

2017-03-23 16:02:10

Mock技术单元测试

2023-07-26 08:58:45

Golang单元测试

2013-06-04 09:49:04

Spring单元测试软件测试

2019-12-18 10:25:12

机器学习单元测试神经网络

2021-09-18 15:40:03

Vue单元测试命令

2024-10-16 16:09:32

2021-03-28 23:03:50

Python程序员编码

2010-03-04 15:40:14

Python单元测试

2020-08-18 08:10:02

单元测试Java

2022-05-09 08:55:52

ORMMockGo

2019-01-29 09:00:44

PyHamcrest单元测试框架

2023-08-02 13:59:00

GoogleTestCTest单元测试

2021-05-05 11:38:40

TestNGPowerMock单元测试

2011-07-04 18:16:42

单元测试

2020-05-07 17:30:49

开发iOS技术

2011-08-11 13:02:43

Struts2Junit

2011-05-16 16:52:09

单元测试彻底测试
点赞
收藏

51CTO技术栈公众号