Android中怎么实现单元测试,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
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单元测试了,给出下面的实例;
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(). } }
关于Android中怎么实现单元测试问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。