邮件提醒来了一个测试问题需要我分派,文本框输入a:b:c(业务需要,内容以英文冒号分隔),“系统提示xxx格式不规范,系统未将全角:转换为半角。”,我看完未过多细想,flex前端没做过,易用性问题,直接分派给功能开发人员小王同学,接下来发生了一些事情。
小王开始抱怨,有病啊,没事开什么全角输入,怎么测试呢…;
小王找我这问题不改了,让把问题打回,有一个理由控制BUG数量;
咋一看,小王说的有道理啊,琢磨了一下,不对啊,(情绪上不能对立,测试也是为了产品质量)测试不至于这么测吧,问题里说的全角真的是全角?可能是测试人员描述的不准确;
找小王解释,问题里说的全角不是真的全角,应该是中文的冒号,什么场景呢?使用sogou输入法时输入字母直接回车将得到字母,而输入冒号将是中文冒号;
小王让我找测试人员确认,让我?好吧,我确认。QQ上咨询测试人员问题里说的全角是否指中文冒号,木有反应,环顾发现不在工位;
我开始网上搜索,关键字 "flex 只输入英文","flex 不能输入中文","flex 输入限制",找到的基本是通过正则限制,感觉不是我要的方法;
转向API,到adobe网站查看TextInput控件的帮助,看看属性,发现可以设置imeMode,在获得焦点时将IME设置为指定模式,我以为找到方法了;
测试反馈,确实是中文冒号,商量解决办法,控制不让输入中文,如果不能切换到中文输入就彻底解决了这个问题;
与小王沟通,小王听到问题得改,第一反应“怎么改,不会啊”,告知试试使用imeMode属性控制输入;
没几分钟,小王试了下,“你给的方法不好用,imeMode的几个枚举值都不对”,我没做过flex,自己再想想、再试试、问问比较熟的人嘛,我这今天的任务还能不能完成了,来回折腾有点不耐烦了;
小王自己琢磨了下,告诉我修改方法,输入中文冒号时直接替换为英文冒号,那就先这样吧;
问题等待测试回归。
flex发展了这么些年,不能没有控制输入的方法吧,得空的时候重新打开帮助,仔细的看了TextInput的所有属性,包括继承属性和方法,未发现有用信息,还是集焦在imeMode上,枚举值为flash.system.IMEConversionMode,看了每个枚举值确实不太靠谱,扩大范围,看看相关类,flash.system包中有另外一个IME类,enabled属性表示系统IME已启用还是已禁用,算找到解决办法了:获取焦点时设置IME.enabled=false
一个测试问题解决过程