下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android中怎么实现单元测试
Android中怎么实现单元测试,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Xml代码<
?xml
version="1.0"
encoding="utf-8"?>
<
manifest
xmlns:android="http://schemas.A/apk/res/Android"
package="your.tests.package">
<
application>
<
uses-library
Android:name="Android.test.runner"
/>
<
/application>
<
instrumentation
Android:name="Android.test.InstrumentationTestRunner"
Android:targetPackage="your.work.package"
Android:label="Tests
for
Api
Demos."/>
<
/manifest>
<
?xml
version="1.0"
encoding="utf-8"?>
<
manifest
xmlns:android="http://schemas.A/apk/res/Android"
package="your.tests.package">
<
application>
<
uses-library
Android:name="Android.test.runner"
/>
<
/application>
<
instrumentation
Android:name="Android.test.InstrumentationTestRunner"
Android:targetPackage="your.work.package"
Android:label="Tests
for
Api
Demos."/>
<
/manifest>
<
?xml
version="1.0"
encoding="utf-8"?>
<
manifest
xmlns:android="http://schemas.A/apk/res/Android"
package="your.tests.package">
<
application>
<
uses-library
Android:name="Android.test.runner"
/>
<
/application>
<
instrumentation
Android:name="Android.test.InstrumentationTestRunner"
Android:targetPackage="your.work.package"
Android:label="Tests
for
Api
Demos."/>
<
/manifest>
<
?xml
version="1.0"
encoding="utf-8"?>
<
manifest
xmlns:android="http://schemas.A/apk/res/Android"
package="your.tests.package">
<
application>
<
uses-library
Android:name="Android.test.runner"
/>
<
/application>
<
instrumentation
Android:name="Android.test.InstrumentationTestRunner"
Android:targetPackage="your.work.package"
Android:label="Tests
for
Api
Demos."/>
<
/manifest>
那么就可以做Android单元测试了,给出下面的实例;1.用AndroidTestCase;
Java代码public
class
SdcardTest
extends
AndroidTestCase
{
public
void
test1(){
//
Log.v()
File
f=new
File("/sdcard");
String[]
l=f.list();
this.assertTrue(f.exists());
this.assertTrue(f.isDirectory());
this.assertTrue(f.list().length>0);
}
}
public
class
SdcardTest
extends
AndroidTestCase
{
public
void
test1(){
//
Log.v()
File
f=new
File("/sdcard");
String[]
l=f.list();
this.assertTrue(f.exists());
this.assertTrue(f.isDirectory());
this.assertTrue(f.list().length>0);
}
}2.用ActivityUnitTestCase
Java代码
public
class
ForwardingTest
extends
ActivityUnitTestCase<
Forwarding>
{
private
Intent
mStartIntent;
private
Button
mButton;
public
ForwardingTest()
{
super(Forwarding.class);
}
@Override
protected
void
setUp()
throws
Exception
{
super.setUp();
//
In
setUp,
you
can
create
any
shared
test
data,
or
set
up
mock
components
to
inject
//
into
your
Activity.
But
do
not
call
startActivity()
until
the
actual
test
methods.
mStartIntent
=
new
Intent(Intent.ACTION_MAIN);
}
/**
*
The
name
'test
preconditions'
is
a
convention
to
signal
that
if
this
*
test
doesn't
pass,
the
test
case
was
not
set
up
properly
and
it
might
*
explain
any
and
all
failures
in
other
tests.
This
is
not
guaranteed
*
to
run
before
other
tests,
as
junit
uses
reflection
to
find
the
tests.
*/
@MediumTest
public
void
testPreconditions()
{
startActivity(mStartIntent,
null,
null);
mButton
=
(Button)
getActivity().findViewById(R.id.go);
assertNotNull(getActivity());
assertNotNull(mButton);
}
/**
*
This
test
demonstrates
examining
the
way
that
activity
calls
startActivity()
to
launch
*
other
activities.
*/
@MediumTest
public
void
testSubLaunch()
{
Forwarding
activity
=
startActivity(mStartIntent,
null,
null);
mButton
=
(Button)
activity.findViewById(R.id.go);
//
This
test
confirms
that
when
you
click
the
button,
the
activity
attempts
to
open
//
another
activity
(by
calling
startActivity)
and
close
itself
(by
calling
finish()).
mButton.performClick();
assertNotNull(getStartedActivityIntent());
assertTrue(isFinishCalled());
}
/**
*
This
test
demonstrates
ways
to
exercise
the
Activity's
life
cycle.
*/
@MediumTest
public
void
testLifeCycleCreate()
{
Forwarding
activity
=
startActivity(mStartIntent,
null,
null);
//
At
this
point,
onCreate()
has
been
called,
but
nothing
else
//
Complete
the
startup
of
the
activity
getInstrumentation().callActivityOnStart(activity);
getInstrumentation().callActivityOnResume(activity);
//
At
this
point
you
could
test
for
various
configuration
aspects,
or
you
could
//
use
a
Mock
Context
to
confirm
that
your
activity
has
made
certain
calls
to
the
system
//
and
set
itself
up
properly.
getInstrumentation().callActivityOnPause(activity);
//
At
this
point
you
could
confirm
that
the
activity
has
paused
properly,
as
if
it
is
//
no
longer
the
topmost
activity
on
screen.
getInstrumentation().callActivityOnStop(activity);
//
At
this
point,
you
could
confirm
that
the
activity
has
shut
itself
down
appropriately,
//
or
you
could
use
a
Mock
Context
to
confirm
that
your
activity
has
released
any
system
//
resources
it
should
no
longer
be
holding.
//
ActivityUnitTestCase.tearDown(),
which
is
always
automatically
called,
will
take
care
//
of
calling
onDestroy().
}
}
public
class
ForwardingTest
extends
ActivityUnitTestCase<
Forwarding>
{
private
Intent
mStartIntent;
private
Button
mButton;
public
ForwardingTest()
{
super(Forwarding.class);
}
@Override
protected
void
setUp()
throws
Exception
{
super.setUp();
//
In
setUp,
you
can
create
any
shared
test
data,
or
set
up
mock
components
to
inject
//
into
your
Activity.
But
do
not
call
startActivity()
until
the
actual
test
methods.
mStartIntent
=
new
Intent(Intent.ACTION_MAIN);
}
/**
*
The
name
'test
preconditions'
is
a
convention
to
signal
that
if
this
*
test
doesn't
pass,
the
test
case
was
not
set
up
properly
and
it
might
*
explain
any
and
all
failures
in
other
tests.
This
is
not
guaranteed
*
to
run
before
other
tests,
as
junit
uses
reflection
to
find
the
tests.
*/
@MediumTest
public
void
testPreconditions()
{
startActivity(mStartIntent,
null,
null);
mButton
=
(Button)
getActivity().findViewById(R.id.go);
assertNotNull(getActivity());
assertNotNull(mButton);
}
/**
*
This
test
demonstrates
examining
the
way
that
activity
calls
startActivity()
to
launch
*
other
activities.
*/
@MediumTest
public
void
testSubLaunch()
{
Forwarding
activity
=
startActivity(mStartIntent,
null,
null);
mButton
=
(Button)
activity.findViewById(R.id.go);
//
This
test
confirms
that
when
you
click
the
button,
the
activity
attempts
to
open
//
another
activity
(by
calling
startActivity)
and
close
itself
(by
calling
finish()).
mButton.performClick();
assertNotNull(getStartedActivityIntent());
assertTrue(isFinishCalled());
}
/**
*
This
test
demonstrates
ways
to
exercise
the
Activity's
life
cycle.
*/
@MediumTest
public
void
testLifeCycleCreate()
{
Forwarding
activity
=
startActivity(mStartIntent,
null,
null);
//
At
this
point,
onCreate()
has
been
called,
but
nothing
else
//
Complete
the
startup
of
the
activity
getInstrumentation().callActivityOnStart(activity);
getInstrumentation().callActivityOnResume(activity);
//
At
this
point
you
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东威海市教育局直属学校引进急需紧缺人才参考笔试题库附答案解析
- 2025年鸡西市民康医院公开招聘精神科护士6人参考考试试题及答案解析
- 2025福建福州左海高铁有限公司(第二次)招聘3人备考笔试试题及答案解析
- 2025新疆北屯额河明珠国有资本投资有限公司招聘2人参考考试题库及答案解析
- 2025年蚌埠怀远县教育局所属事业单位紧缺专业人才引进(校园招聘)22名备考笔试题库及答案解析
- 2026河北省定向上海交通大学选调生招录备考考试题库及答案解析
- 2025年信阳艺术职业学院招才引智公开招聘专业技术人员32名参考笔试题库附答案解析
- 2025广东广州南沙人力资源发展有限公司招聘展厅管理员1人参考考试题库及答案解析
- 2026云南省卫生健康委员会所属部分事业单位第二批校园招聘83人备考考试试题及答案解析
- (12篇)2024年小学预防校园欺凌工作总结
- 质量SQE月度工作汇报
- 红外光谱课件
- 液压油路图培训课件
- LCD-100-A火灾显示盘用户手册-诺蒂菲尔
- 2025至2030中国大学科技园行业发展分析及发展趋势分析与未来投资战略咨询研究报告
- 餐饮大数据与门店开发项目二餐饮门店开发选址调研任务四同行分
- 脑卒中后的焦虑抑郁课件
- 廉洁从业教育培训课件
- 2025至2030中国蒸汽回收服务行业项目调研及市场前景预测评估报告
- 电动汽车充电桩运营维护手册
- 弓网磨耗预测模型-洞察及研究
评论
0/150
提交评论