Android测试驱动开发实践1

发表于:2013-12-18 11:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:最老程序员闫涛    来源:51Testing软件测试网采编

  在WkjTest工程中,选中MainActivityTest类,点右键,选择Run As....然后选Android JUnit Test,在随后弹出的界面选择测试设备,运行程序后,在Junit视图会显示,执行了test001测试用例,并且该测试用例失败了,这正是我们目前所需要的结果。
  另外,注意我们对测试用例的命名,testTemp001,表明是临时性的测试用例。采用这种方式命名的测试用例,表明是在开发过程中使用的临时测试用例,不是用于回归测试中的正式测试用例。
  下面开始编写功能性代码,来使这个测试用例通过。
  还记得在本文开头处提到的MVC架构吗?现在我们就开始来一步步实现这个MVC架构。我们将Activity当作视图View,View读取Model中数据并显示到界面上,testTemp001这是为了测试这一工作模式。
  在Android中怎样来实现一个Model呢?实现Model当然有很多种方式,我在这里采用扩展Application类来当作Model,即定义AppModel并继承Application,这样做的好处是Model不用采用Singleton模式也可以实现单例模式了,而且可以很方便在Activity中获取到。在我们这个最简单的应用中,需要Model中存在welcom_msg信息,这时在MainActivity中才可以通过向Model请求数据并显示在界面中。
  AppModel类如下所示:
package com.bjcic.wkj;
import android.app.Application;
public class AppModel extends Application {
// 生命周期方法开始
public void onCreate() {
super.onCreate();
welcomeMsg = getString(R.string.welcome_msg);
}
public void onTerminate() {
super.onTerminate();
}
// 生命周期方法结束
private String welcomeMsg = null;
public String getWelcomeMsg() {
return welcomeMsg;
}
public void setWelcomeMsg(String welcomeMsg) {
this.welcomeMsg = welcomeMsg;
}
}
在MainActivity中添加如下代码:
[java] view plaincopy
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
appModel = (AppModel)getApplication();
}
@Override
public void onResume() {
super.onResume();
((TextView)findViewById(R.id.j_titleTxtv)).setText(appModel.getWelcomeMsg());
}
private AppModel appModel = null;
  最后在Manifest文件中添加:
<application
android:allowBackup="true"
android:name=".AppModel"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
  这时再回到WkjTest工程,选中MainActivityTest类,右键选择Run As .... =>Android JUnit Test,这时Junit视图将显示测试用例通过。就这样,我们的第一个测试驱动开发周期就结束了。
相关文章:
Android测试驱动开发实践
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号