Android中怎么实现单元测试

发布时间:2021-06-26 15:11:07 作者:Leah
来源:亿速云 阅读:130

Android中怎么实现单元测试,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Xml代码

  1. < ?xml version="1.0" encoding="utf-8"?>   

  2. < manifest xmlns:android=
    "http://schemas.Android.com/apk/res/Android"   

  3. package="your.tests.package">   

  4. < application>   

  5. < uses-library Android:name="Android.test.runner" />   

  6. < /application>   

  7. < instrumentation Android:name=
    "Android.test.InstrumentationTestRunner"   

  8. Android:targetPackage="your.work.package"   

  9. Android:label="Tests for Api Demos."/>   

  10. < /manifest>   

  11. < ?xml version="1.0" encoding="utf-8"?> 

  12. < manifest xmlns:android=
    "http://schemas.Android.com/apk/res/Android" 

  13. package="your.tests.package"> 

  14. < application> 

  15. < uses-library Android:name="Android.test.runner" /> 

  16. < /application> 

  17. < instrumentation Android:name=
    "Android.test.InstrumentationTestRunner" 

  18. Android:targetPackage="your.work.package" 

  19. Android:label="Tests for Api Demos."/> 

  20. < /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代码 

  1. public class ForwardingTest extends ActivityUnitTestCase
    < Forwarding> {   

  2. private Intent mStartIntent;   

  3. private Button mButton;   

  4. public ForwardingTest() {   

  5. super(Forwarding.class);   

  6. }   

  7. @Override   

  8. protected void setUp() throws Exception {   

  9. super.setUp();   

  10. // In setUp, you can create any shared test data, 
    or set up mock components to inject   

  11. // into your Activity. But do not call startActivity() 
    until the actual test methods.   

  12. mStartIntent = new Intent(Intent.ACTION_MAIN);   

  13. }   

  14. /**   

  15. * The name 'test preconditions' is a convention 
    to signal that if this   

  16. * test doesn't pass, the test case was not set up 
    properly and it might   

  17. * explain any and all failures in other tests. 
    This is not guaranteed   

  18. * to run before other tests, as junit uses 
    reflection to find the tests.   

  19. */   

  20. @MediumTest   

  21. public void testPreconditions() {   

  22. startActivity(mStartIntent, null, null);   

  23. mButton = (Button) getActivity().findViewById(R.id.go);   

  24. assertNotNull(getActivity());   

  25. assertNotNull(mButton);   

  26. }   

  27. /**   

  28. * This test demonstrates examining the way that 
    activity calls startActivity() to launch   

  29. * other activities.   

  30. */   

  31. @MediumTest   

  32. public void testSubLaunch() {   

  33. Forwarding activity = startActivity(mStartIntent, null, null);   

  34. mButton = (Button) activity.findViewById(R.id.go);   

  35. // This test confirms that when you click the 
    button, the activity attempts to open   

  36. // another activity (by calling startActivity) 
    and close itself (by calling finish()).   

  37. mButton.performClick();   

  38. assertNotNull(getStartedActivityIntent());   

  39. assertTrue(isFinishCalled());   

  40. }   

  41. /**   

  42. * This test demonstrates ways to exercise the Activity's life cycle.   

  43. */   

  44. @MediumTest   

  45. public void testLifeCycleCreate() {   

  46. Forwarding activity = startActivity(mStartIntent, null, null);   

  47. // At this point, onCreate() has been called, but nothing else   

  48. // Complete the startup of the activity   

  49. getInstrumentation().callActivityOnStart(activity);   

  50. getInstrumentation().callActivityOnResume(activity);   

  51. // At this point you could test for various configuration 
    aspects, or you could   

  52. // use a Mock Context to confirm that your activity 
    has made certain calls to the system   

  53. // and set itself up properly.   

  54. getInstrumentation().callActivityOnPause(activity);   

  55. // At this point you could confirm that the activity 
    has paused properly, as if it is   

  56. // no longer the topmost activity on screen.   

  57. getInstrumentation().callActivityOnStop(activity);   

  58. // At this point, you could confirm that the activity 
    has shut itself down appropriately,   

  59. // or you could use a Mock Context to confirm that your 
    activity has released any system   

  60. // resources it should no longer be holding.   

  61. // ActivityUnitTestCase.tearDown(), which is always 
    automatically called, will take care   

  62. // of calling onDestroy().   

  63. }   

关于Android中怎么实现单元测试问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. Android下编写单元测试步骤
  2. android单元测试AndroidTestCase

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android

上一篇:nodejs如何读取并去重excel文件

下一篇:如何通过nodejs服务器读取HTML文件渲染到页面

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》