Android单元测试
来源:互联网 发布:对影成三人 知乎 编辑:程序博客网 时间:2024/05/17 00:05
如果你要测试的是Activity或者Service,就用ActivityUnitTestCase,ServiceTestCase。否则选择:AndroidTestCase。
在做Android单元测试以前,你需要创建一个新的项目,把要测试的项目包含到java build path中来。项目中的AndroidManifest.xml如下(这里假设你的your.test.package里面包含你的tests,your.work.package包含被测试的类):
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>
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 单元测试
- Android单元测试
- Android单元测试
- android单元测试
- Android单元测试
- Android单元测试
- android单元测试
- android单元测试
- Android单元测试
- Android单元测试
- android 单元测试
- android 单元测试
- Android--单元测试
- android单元测试
- Android单元测试
- Android单元测试
- Android单元测试
- ANDROID 单元测试
- 2010年最新PHP类的精缩归纳
- 使用 Tkprof 分析 ORACLE 跟踪文件
- 5个简便的方法来改善您的网站的易读性
- win7 安装apache时提示failed to open the winNT service manager
- Linux_shell_正则表达式
- Android单元测试
- 网易的与7无关的数试题,用C语言尾递归实现了
- Javascript操作XML,HTML(转载:罗代均)
- 太极图
- 排列组合
- 池,状态与无状态,服务器上下文
- Android单元测试思路
- JAVA中读取XML文件中的配置信息
- adaptor