`

Android Test 简单总结

阅读更多
用Android studio可以很方便的完成代码的测试工作,比之前在Eclipse里面做测试方便多了,下面简单总结一下:
一、创建测试目录结构:
一般在工程根目录下创建androidTest文件夹,里面按照src包名结构创建目录,然后就可以创建测试文件了,如图:



也可以在module的build文件进行指定测试路径:
        androidTest {
            java.srcDirs = ['androidTest/java']
            assets.srcDirs = ['androidTest/assets/']
        }


二、创建测试文件:
新建XXXTest.Java,一般继承InstrumentationTestCase。
里面方法命名要注意,测试用例必须要以test开头,如果你要控制执行顺序,需要在test后面加有序的数字或字母,在执行的时候会按命名顺序执行,如:test1Query(),test2Insert()等等;

public class UtilsTest extends InstrumentationTestCase {

    public void test1() throws Exception {
        assertTrue(Utils.isValidUrl("http://www.qq.com"));
        assertTrue(Utils.isValidUrl("www.qq.com/news?a=1"));
        assertFalse(Utils.isValidUrl("http://*.qq.com"));
        assertTrue(Utils.isValidUrl("http://www.qq.com/?a=1"));
        assertTrue(Utils.isValidUrl("www.qq.com:80"));
        assertTrue(Utils.isValidUrl("http://www.qq.com:80/news"));
        assertTrue(Utils.isValidUrl("www.qq.com/news"));
        assertTrue(Utils.isValidUrl("ftp://www.qq.com/news"));
        assertTrue(Utils.isValidUrl("ftp://www.qq/news")); // We can't judge that whether the domain suffix is valid.
    }

    public void test2() throws Exception {
        String[][] hosts =
                {{"baidu.com", "http://baidu.com/?v=1"},
                        {"qq.com", "https://qq.com/?v=1"},
                        {"qq.com", "ftp://qq.com/?v=1"},
                        {"qq.com:80", "https://qq.com:80/?v=1"}
                };

        for (int i = 0; i < hosts.length; i++) {
            assertEquals(hosts[i][0], Utils.extractHost(hosts[i][1]));
        }
    }

    public void test3() throws Exception {
        assertTrue(Utils.isValidRedirectUrl("http://www.qq.com"));
        assertTrue(Utils.isValidRedirectUrl("https://www.163.com"));
    }
}


三、注意事项:
如果要测试的接口里面有线程,一般以回调的方式展示,这时候要注意让测线程等待,否则测试主线程会提前退出,导致测试失败,可以用下面方法控制:
    Object queryLock = new Object();

    private void waitProcessing(){
        try{
            synchronized (queryLock){
                queryLock.wait();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    private void notifyProcessing() {
        synchronized (queryLock) {
            queryLock.notify();
        }
    }


四、运行:
运行整个测试用例,只需要在需要在文件上右键->run即可
运行单个case,在对应的方法中点击,右键->run即可;
  • 大小: 8.9 KB
2
3
分享到:
评论

相关推荐

    android test

    总结来说,“android test”涵盖的内容广泛,包括但不限于Camera2 API的使用,MediaPlayer和ExoPlayer的音频处理,以及自动化测试策略的构建。在实际开发中,我们不仅要确保功能的正常运行,还要关注性能、稳定性、...

    0android_test[1]

    总结,"0android_test[1]"项目可能是为了确保Android Studio的测试环境配置无误,通过创建和运行一个简单的"HelloWorld"测试用例,验证工具链的完整性,包括编译、运行和测试的流程。这不仅检查了代码编译是否成功,...

    Android Test

    总结来说,Android Test提供了一整套完善的测试方案,从单元测试到UI自动化,再到压力测试和持续集成,涵盖了测试的各个环节。通过熟练掌握这些工具和框架,开发者可以构建出更加稳定、高质量的Android应用。

    androidtest

    总结来说,"androidtest"涉及了Android应用测试的全面知识,包括但不限于单元测试、UI测试、测试策略、测试工具和最佳实践。理解和掌握这些知识点对于开发出高质量、稳定的Android应用至关重要。

    Test_Framework_training.pdf

    下面通过一个简单的例子来进一步理解如何使用Android Test Framework编写测试用例: ```java package com.google.android.demo.notepad3.tests; public class TestUsingJunit extends TestCase { @Override ...

    VKey-Test.zip_android

    总结而言,"VKey-Test.zip_android"提供了一个实用的平台,用于测试和优化Android虚拟键盘的功能。无论是为了修复已知问题,还是为了创新自定义键盘设计,这个工具都能为Android开发者提供有力的支持,确保最终产品...

    JunitTest XML parse

    PULL解析更适合Android环境,具有更简单的API,但需要手动控制解析流程。选择哪种解析方式取决于具体需求和应用场景。 在实际项目中,`AndroidManifest.xml`这样的文件可能会涉及到XML解析,例如解析权限、服务或...

    Android Studio中Junit调试

    - 创建一个名为`Text`的类,其中包含一个简单的加法函数: ```java public class Text { // 加法运算 public int add(int x, int y) { return x + y; } } ``` - 在`src/test/java`目录下创建一个新的JUnit...

    android_test:android_sdk_testing

    总结,`android_test` 和 `android_sdk_testing` 涉及的是Android应用的测试方法和工具,包括使用Java进行单元测试和UI测试,以及如何利用Android SDK提供的工具来提升测试效率和质量。在实际开发中,遵循测试驱动...

    Qt for Android简单示例

    总结来说,“Qt for Android简单示例”涵盖了从安装环境到创建、运行和扩展Qt应用的基本步骤。通过这个过程,开发者可以快速掌握Qt在Android平台上的开发技巧,从而利用C++的强大能力创建功能丰富的移动应用。

    Android与Internet接轨Android与Internet接轨Android与Internet接轨

    在Android平台上,与Internet接轨是实现众多功能的基础,如数据交换、在线服务、社交媒体整合等。本文将深入探讨如何在Android应用中实现网络连接,包括HTTP的Post和Get方法,以及利用WebView组件创建自定义浏览器。...

    android 广播简单的使用

    本篇将基于提供的文件内容详细讲解Android广播的简单使用方法。 #### 一、广播的概念 广播是Android四大组件之一,在Android中起到非常重要的作用。它主要用于在应用程序的不同部分或不同应用程序之间发送和接收...

    android binder 简单实例

    总结来说,“Android Binder简单实例”涉及到Android系统中进程间通信的核心技术——Binder,以及其基本的C/S架构和通信流程。通过学习和分析提供的代码示例,开发者能够更好地理解和掌握Binder在实际应用中的使用。

    android上RabbitMQ发送简单例子

    总结来说,使用RabbitMQ在Android上进行网络发送涉及服务器安装、客户端集成、消息队列的声明和使用,以及AMQP协议的交互。对于初学者来说,理解这些基本概念和操作是至关重要的,可以帮助构建可靠和可扩展的跨平台...

    Android Layout Activity Test Demo

    在`MyFirstMobileDemo`这个项目中,你可能会看到一个简单的Android应用示例,它可能包含了多个`Activity`和对应的`Layout`文件,展示了如何创建界面、进行页面跳转以及数据传递。通过研究这个项目,你可以更深入地...

    android 简单的短信发送

    根据压缩包中的`AndroidTest1`文件,这可能是项目的源代码文件夹,其中可能包含了实现上述步骤的Java代码文件和布局XML文件。通过查看这些文件,可以更深入地理解短信发送的实现细节。 总结,这个"android 简单的...

    最简单的Android JNI程序

    一个简单的Android JNI程序通常包含以下部分: 1. Java源文件:定义Java类和本地方法(native方法)。 2. C/C++源文件:实现本地方法的逻辑。 3. Android.mk或CMakeLists.txt:构建脚本,用于指示Android NDK如何...

    Android复习总结

    【Android复习总结】 Android是一个由谷歌领导的开放手机联盟开发的开源移动设备操作系统,主要应用于智能手机和平板电脑。它的核心特点在于其开放性和灵活性,允许开发者使用Java语言编写应用程序,并在Dalvik虚拟...

    android Junit

    测试类通常放在`src/androidTest/java`目录下,与被测试的代码分开。一个简单的测试类可能如下所示: ```java import org.junit.Test; import static org.junit.Assert.assertEquals; public class MyTest { ...

    TestAudio.zip

    总结来说,“TestAudio.zip”提供的简单音量调节工具展示了如何在Android应用中实现用户友好的音量控制功能。通过深入研究这个工具,开发者可以了解到Android音频框架的基本用法,以及如何创建自己的音频管理功能。...

Global site tag (gtag.js) - Google Analytics