您好,登錄后才能下訂單哦!
Android中怎么實(shí)現(xiàn)單元測試,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
Xml代碼
< ?xml version="1.0" encoding="utf-8"?>
< manifest xmlns:android=
"http://schemas.Android.com/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.Android.com/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單元測試了,給出下面的實(shí)例;
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().
}
}
關(guān)于Android中怎么實(shí)現(xiàn)單元測試問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。