} if (item.getItemId() == 0) {//删除 } return super.onContextItemSelected(item); ContextMenuInfo info = item.getMenuInfo(); AdapterContextMenuInfo contextMenuInfo = (AdapterContextMenuInfo) info; // 获取选中行位置 int position = contextMenuInfo.position; // 获取问题内容 HashMap
21
4.4 结账界面 4.4.1 功能描述
结账界面:点击结账按钮后会跳转到下一个界面用来显示消费金额及详细款项,一目了然,方便顾客查账使用。 4.4.2 界面设计
9 输入联系方式和送达地址以及选择支付的方式
22
图
查看订单详细信息如图10.
图10查看订单
4.4.3功能实现
结账实现的主要代码:从服务器获得订单编号,显示总计消费金额,再点击结算按钮后,通过payBtn.setEnabled(false)方法就会是结算按钮失效,不能再次点击生效,这也是为了结算能够更加简单明了,不易让顾客和服务员发生多次结账的错误。是比较人性化设计的一个方面。 4.4.4 关键代码
23
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dingdan); button1 = (Button) this.findViewById(R.id.Button21); button1.setOnClickListener(myListener1); button2 = (Button) this.findViewById(R.id.Button22); button2.setOnClickListener(myListener2); text1 = (EditText) findViewById(R.id.Text21); text2 = (EditText) findViewById(R.id.Text22); // -------------------------spinner1 spinner1 = (Spinner) findViewById(R.id.Spinner21); // 将可选内容与ArrayAdapter连接起来 adapter1 = new ArrayAdapter
第五章 测试
5.1 测试的作用和意义
系统测试在系统的开发周期中是除了维护以外的最后一个环节,也是最重要的一个环
节。虽然系统开发周期的每个阶段时都十分严格,但仍然会出现难以避免错误,或者细小的瑕疵,如果投入运行前的系统测试阶段没有发现这些错误,这些错误也迟早会出现,到时候将会付出更大更多的人力、物力时间去纠正。系统测试要花费相当大的时间、人力、物力。经调查,对于较大规模的系统,整个软件开发工作量的40%-50%都会用来进行软件测试。而且如果开发的系统很大很重要,测试则要花费巨大工作量和成本去进行,不过,这么做都是有必要的。 5.2 测试方法
对软件进行测试的主要分为人工测试方法与机器测试方法。一般源程序通过编译后,
首先人工要对其进行测试,然后再用机器进行测试。通过人工测试方法,能够相当有效的查找程序中的错误,在一个模块的测试过程中,应至少使用一种或多种人工测试方法是很有必要的。而用机器进行测试则是用之前设计好的例子,将运行的结果和预期的结果进行对比从而发现问题。
人工测试又分为软件审查、代码审查与人工走查都是以召开评审会的方式进行。 机器测试分为黑盒测试与白盒测试。
对于这个基于Android的移动点餐系统来说,我在每写完一个功能模块时就要对这个功能模块进行测试,这样及时发现问题可以及时改正,比较有条理性,其实也可以每写好一段相对独立的程序时对它进行相应的功能测试或模块测试。而当我完成整个系统时我采用上面所说的人工测试方法,把整个软件的逻辑关系理一下,避免发生逻辑性的错误,然后是检查软件的功能是否实现,与需求里面的功能要求作对比,检查功能实现是否合理等。 5.3 测试内容
(1)登录模块测试如表6.
表6 登录模块测试
输入/操作 期望的输出/响应 输入正确的用户名和密码 实际情况 正常登陆 25