【移动应用开发技术】Android中怎么实现单元测试_第1页
【移动应用开发技术】Android中怎么实现单元测试_第2页
【移动应用开发技术】Android中怎么实现单元测试_第3页
【移动应用开发技术】Android中怎么实现单元测试_第4页
【移动应用开发技术】Android中怎么实现单元测试_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论