当前位置:  编程技术>移动开发
本页文章导读:
    ▪应用Titanium做单元测试        使用Titanium做单元测试 官方文档中什么也没有提到,单元测试中可以使用喜欢的Javascript测试框架。因为不依赖浏览器,所以只要能确认Log输出的即可。总之,为了在Titanium的控制台输出Log.........
    ▪ 腾挪手机便携百宝箱应用(跨平台尝试)        移动手机便携百宝箱应用(跨平台尝试) 这阵子弄出了便携百宝箱的kjava版和andriod版,android版本的应用自不必说, 可运行在所有andriod1.5/1.6/2.x/3.x系列手机、平板上,没有问题kjava版本的应用.........
    ▪ 用BaseAdapter时,在ListView的onItemClick步骤狂报 ClassCastException:java.lang.Boolean       用BaseAdapter时,在ListView的onItemClick方法狂报 ClassCastException:java.lang.Boolean 原因: 通常在使用simpleCursorAdapter的listview中的onItemClick方法中, 使用Cursor cursor = (Cursor)listView.getItemAtPosition(position);可以的.........

[1]应用Titanium做单元测试
    来源: 互联网  发布时间: 2014-02-18
使用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');


确认动作的test/tests_to_run.js

为了确认动作,什么测试也没有写,只是测试QUnit的动作的例子代码:
module("QUnit on Titanium");
test("OK test(pass)", function () {
    ok(true);
  }
);

test("equal test(no pass)", function () {
    equal('hogehoge', 'hige');
  }
);


动作结果会很好的输出到Titanium的控制台上。
顺便说一下,由于结果中包含了HTML代码,很难理解。使用QUnit-TAP不是很好。

使用Jasmine

Jasmine中,能够自定义测试出力的Reporter,所以可以做成Titanium用的Reporter。

jasmine.js中,提供了基本的Reporter类,可以根据它做成自己的Reporter类。
实际编码的时候可以参考Jasmine官方发布版本中的jasmin-html.js和jasmine.console_reporter.js。

包含了很好出力的Reporter的Jasmine Titanium也已经公开了。

在app.js中添加代码确认动作

还没有任何测试内容,只是确认Jasmine动作的例子代码。
前提是在Resorses/jasmine中,jasmine.js和jasmine-titanium.js(上边的TitaniumReporter)
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();


执行结束后,就能看到失败的测试和合计结果。
实际的开发中,应该把测试代码统一放在spec文件夹中比较好。
注:
没有spec文件夹或者文件夹为空是不能启动的。

【原文】Titaniumでユニットテスト

    
[2] 腾挪手机便携百宝箱应用(跨平台尝试)
    来源: 互联网  发布时间: 2014-02-18
移动手机便携百宝箱应用(跨平台尝试)

这阵子弄出了便携百宝箱的kjava版和andriod版,
android版本的应用自不必说, 可运行在所有andriod1.5/1.6/2.x/3.x系列手机、平板上,没有问题
kjava版本的应用,这个,应用目前来看,应用能力在不断扩展中,目前主流目标平台定位在功能手机上(下面另有测试结果)

不是那种市面上定了的一种平台上运行,
目前收集到的测试方案来看,
1. 可以运行在支持java的所有手机上,这个自不必说(似乎只要一个jar文件就可以直接安装运行)
2. 另外, 可运行在Brew平台上增加了java扩展的手机, 那么怎么知道自己的手机上有没有java扩展呢,好像Brew平台上增加java
扩展已经是很早的事了,所以市面上的Brew平台手机,应该大部份都有java扩展,所以这部分手机完全可以运行这个kjava版本的应用
大家不要低估了自己手机的应用能力(似乎只要一个jar文件就可以直接安装运行)

中兴ZTE R201这种在java手机中根本就排不上号的手机上都可以正常运行(176x220很老的手机啦)
ZTE R201低端配置介绍


3. 经过近期测试,kjava版本的应用已经成功运行中symbian s60系列智能手机上了(似乎需要jar文件和jad文件)
Nokia5230 SymbianOS/9.4;  Series60/5.0
诺基亚其它系列的手机还没有测试


总结起来看,这款kjava应用并非只有在java手机上才可以运行,而是可以在任何进行了java扩展的手机上都可以运行


网站上两种版本的应用都提供

Java/J2me版本(如果下载JAD安装,则要同时下载JAR文件再进行安装)
JAR文件下载 | JAD文件下载 | JAD/JAR下载 |
  
 
Android(安卓版本)
手动下载 apk文件 | 


    
[3] 用BaseAdapter时,在ListView的onItemClick步骤狂报 ClassCastException:java.lang.Boolean
    来源: 互联网  发布时间: 2014-02-18
用BaseAdapter时,在ListView的onItemClick方法狂报 ClassCastException:java.lang.Boolean

原因:

通常在使用simpleCursorAdapter的listview中的onItemClick方法中,

使用Cursor cursor = (Cursor)listView.getItemAtPosition(position);可以的到改位置的cursor,

但如果使用BaseAdapter,由于我们重写了 

@Override

	public Object getItem(int position) {
		return cursor.moveToPosition(position);
	}

而listView的getItemAtPosition方法内部会调用到getItem,所以listView.getItemAtPosition(position)实际上不是返回Object而是boolean值


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
sqlserver iis7站长之家
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3