Android 应用程序单元测试

标签 android unit-testing junit

所以,我是 android 单元测试的新手。我正在尝试为电话应用程序编写单元测试:

package com.android.phone;

import android.content.Intent;
import android.net.Uri;
import android.test.ApplicationTestCase;
import android.test.suitebuilder.annotation.MediumTest;

import com.android.phone.PhoneApp;

import dalvik.annotation.TestTargetClass;

@TestTargetClass(PhoneApp.class)
public class TestPhone extends ApplicationTestCase<PhoneApp> {

        public TestPhone() {
                super(PhoneApp.class);
        }

        private PhoneApp phone;

        @Override
        protected void setUp() throws Exception {
                super.setUp();
                phone = getApplication();
        }

        @MediumTest
        public void testDialerIsUp() {
                assertNotNull("Phone app does not exist", phone);
                // TODO add tests
        }

}

然后我启动一个模拟器,等待它启动,然后运行这些测试:

adb shell am instrument -e class com.android.phone.TestPhone -r -w com.android.phone.tests/android.test.InstrumentationTestRunner

现在我得到一个 junit.framework.AssertionFailedError: PhoneApp does not exist。这里出了什么问题,为什么 PhoneApp 没有启动?

最佳答案

实际上,我建议在调用 phone = getApplication() 之前在 setUp() 方法中调用 createApplication()。

关于Android 应用程序单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3423097/

相关文章:

android - TimePickerDialog 中的标题

Android - 在电子邮件 Intent 中附加多个文件会使 Gmail 崩溃

c# - 如何从带有 NSubstitute 的模拟对象返回一个对象(即 List<string>)?

angular - 如何为 Angular react 形式的自定义验证器编写单元测试用例?

java - 如何获取 JUnit 5 中测试的当前重复次数?

android - RecyclerView 出现错误

java - 从编辑文本框Android中删除默认文本

java - 如何模拟 ResponseEntity

java - 如果我们使用 assertEquals,是否值得在 Junit 测试用例中首先检查 assertNotNull?

java - JUnit 4 测试套件