`
寻梦者
  • 浏览: 638146 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android中junit测试各种按钮事件

 
阅读更多

public class CalculatorHitSomeButtons extends ActivityInstrumentationTestCase <Calculator>{
    public boolean setup = false;
    private static final String TAG = "CalculatorTests";
    Calculator mActivity = null;
    Instrumentation mInst = null;
    
    public CalculatorHitSomeButtons() {
        super("com.android.calculator2", Calculator.class);
    }
    
    @Override
    protected void setUp() throws Exception {
        super.setUp();
        
        mActivity = getActivity();
        mInst = getInstrumentation();
    }
    
    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
    }
    
    @LargeTest
    public void testPressSomeKeys() {
        Log.v(TAG, "Pressing some keys!");
        
        // Make sure that we clear the output
        press(KeyEvent.KEYCODE_ENTER);
        press(KeyEvent.KEYCODE_CLEAR);
        
        // 3 + 4 * 5 => 23
        press(KeyEvent.KEYCODE_3);
        press(KeyEvent.KEYCODE_PLUS);
        press(KeyEvent.KEYCODE_4);
        press(KeyEvent.KEYCODE_9 | KeyEvent.META_SHIFT_ON);
        press(KeyEvent.KEYCODE_5);
        press(KeyEvent.KEYCODE_ENTER);
        
        assertEquals(displayVal(), "23");
    }
    
    @LargeTest
    public void testTapSomeButtons() {
        Log.v(TAG, "Tapping some buttons!");
        
        // Make sure that we clear the output
        tap(R.id.equal);
        tap(R.id.del);
        
        // 567 / 3 => 189
        tap(R.id.digit5);
        tap(R.id.digit6);
        tap(R.id.digit7);
        tap(R.id.div);
        tap(R.id.digit3);
        tap(R.id.equal);
        
        assertEquals(displayVal(), "189");
        
        // make sure we can continue calculations also
        // 189 - 789 => -600
        tap(R.id.minus);
        tap(R.id.digit7);
        tap(R.id.digit8);
        tap(R.id.digit9);
        tap(R.id.equal);
        
        // Careful: the first digit in the expected value is \u2212, not "-" (a hyphen)
        assertEquals(displayVal(), mActivity.getString(R.string.minus) + "600");
    }
  
    // helper functions
    private void press(int keycode) {
        mInst.sendKeyDownUpSync(keycode);
    }
    
    private boolean tap(int id) {
        View view = mActivity.findViewById(id);
        if(view != null) {
            TouchUtils.clickView(this, view);
            return true;
        }
        return false;
    }
  
    private String displayVal() {
        CalculatorDisplay display = (CalculatorDisplay) mActivity.findViewById(R.id.display);
        assertNotNull(display);
        
        EditText box = (EditText) display.getCurrentView();
        assertNotNull(box);
        
        return box.getText().toString();
    }
}
 
分享到:
评论

相关推荐

    android Junit

    总结来说,Android中的JUnit测试涉及环境配置、测试类和方法编写、模拟对象、UI测试、覆盖率分析以及测试策略等多个方面。熟练掌握这些知识点,能帮助开发者编写出更健壮、更可靠的Android应用。

    Android下使用JUnitTest用例

    然后,在这个目录下创建一个新的Java类,继承自`androidx.test.ext.junit.runners.AndroidJUnit4`。这样,你的测试类就可以使用JUnit4的注解了。 4. **编写测试用例** 使用JUnit的`@Test`注解标记测试方法,这些...

    Android Junit使用

    在进行Android JUnit测试时,还需要注意几点最佳实践: 1. 测试应尽可能独立,不依赖外部状态或网络。 2. 尽量减少测试时间,避免长时间运行的测试。 3. 使用`@Before`和`@After`方法设置测试前后的环境。 4. 编写...

    雾山的Robotium学习笔记---使用junitreport导出测试报告

    `junitreport`是一个用于处理JUnit测试结果的XML格式报告的工具。它可以将测试结果转换成HTML格式,方便查看和分析。在Android项目中,我们可以通过配置`AndroidManifest.xml`文件,使测试过程中生成的JUnit XML报告...

    Android自动化测试

    而`android-junit-report`库则是用于生成JUnit测试报告的工具。这个库能够将测试结果转化为格式化的HTML报告,包括每个测试用例的详细信息、成功/失败的状态以及执行时间等。这有助于开发者更好地理解和分析测试结果...

    Android单元测试Demo

    1. **测试类和测试方法**:在JUnit中,我们创建一个继承自`androidx.test.ext.junit.runners.AndroidJUnit4`的测试类,并在其中定义一系列带有`@Test`注解的方法。这些方法就是测试用例,每个方法测试代码的一个特定...

    Android Studio中进行单元测试和UI测试

    为了在Android环境中运行单元测试,我们需要使用`@RunWith(AndroidJUnit4::class)`注解(对于Kotlin)或`@RunWith(AndroidJUnit4.class)`(对于Java),这将使JUnit4与Android环境兼容。此外,`@Test`注解用于标记...

    Android unitTest 按键单元测试项目

    @RunWith(AndroidJUnit4::class) class MainActivityTest { @Rule @JvmField val activityScenarioRule = ActivityScenarioRule(MainActivity::class.java) @Test fun testButtonClick() { val button = on...

    Android程序测试(1)

    3. **编写测试类**:在`src/androidTest/java`目录下创建测试类,继承自`AndroidJUnit4`,例如`HelloAndroidTest.kt`。在测试类中,可以定义一系列`@Test`注解的方法,每个方法代表一个测试用例。 4. **编写测试...

    androidStudio测试代码

    1. 创建测试类:在Android Studio中,可以右键点击要测试的源代码文件,选择"New &gt; Test &gt; JUnit Test"来生成对应的测试类。测试类通常位于`src/test/java`目录下,遵循`&lt;package_name&gt;.test.&lt;original_class_name&gt;`...

    robotium Android自动化 测试范例

    测试用例写好后,我们可以使用Android Studio的JUnit测试运行器或者命令行工具(如gradlew)来执行测试。测试结果将以日志的形式输出,包括每个测试用例的名称、结果和运行时间。如果需要更详细的报告,还可以配置...

    Android Studio中进行单元测

    除了基本的JUnit测试,Android Studio还支持 Espresso 和 Robolectric 这样的UI测试框架。Espresso用于进行界面交互测试,它能够模拟用户对UI的操作,验证UI状态。而Robolectric则是在没有真实设备或模拟器的情况下...

    android单元测试实例一

    在Android环境中,我们使用AndroidX测试库,它是JUnit4的扩展,提供了与Android平台兼容的测试支持。在这个实例中,你可能发现了名为"TestAut01"的文件,这很可能是一个测试类,包含了对应用程序"Aut01"中各个组件的...

    Android_Dialog测试代码

    在JUnit或Espresso等测试框架中,我们可以编写测试用例来模拟用户行为并验证Dialog的行为。例如,我们可以使用`onView`和`performClick`来模拟点击“确定”或“取消”按钮: ```java @Test public void testDialog...

    Android自动化测试手段之Robotium

    在实际项目中,我们可以结合持续集成工具(如Jenkins)和测试报告插件(如JUnit Reports)使用Robotium,实现自动化测试的流程化。例如,当代码提交到版本控制系统时,持续集成服务器可以自动触发构建和测试,快速...

    Android Acitivity的测试代码

    1. **JUnit测试**:JUnit主要用于测试Activity的逻辑代码,不涉及UI部分。你可以创建一个继承自`androidx.test.ext.junit.runners.AndroidJUnit4`的测试类,并使用`@Test`注解标记测试方法。在测试中,可以通过`...

    android单元测试

    比如,我们可以测试按钮点击事件是否正确触发了相应的回调。 对于依赖于Android系统服务或组件的测试,我们可以使用Robolectric库。它是一个开源项目,能够模拟Android系统,使得测试能在没有真实设备或模拟器的...

    Android自动化测试_Java_下载.zip

    总之,Java在Android自动化测试中发挥着至关重要的作用,结合JUnit、Espresso、Mockito等工具,我们可以构建高效且可靠的测试框架。对于“AndroidRobot”项目,它的出现可能是为了简化自动化测试的实施,提高测试...

    Android自动化测试初探

    首先,我们了解到传统的Android自动化测试通常依赖于JUnit框架和Android SDK中的`android.test`包,但这需要应用程序的源代码,这对于许多只做黑盒测试的测试工程师来说并不实际。 Android系统中的权限控制严格限制...

Global site tag (gtag.js) - Google Analytics