【问题标题】:Android app unit testing安卓应用单元测试
【发布时间】:2010-08-06 10:56:26
【问题描述】:

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

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没有启动?

【问题讨论】:

    标签: android unit-testing junit


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您没有显示 PhoneApp 的代码。您是否从 android.app.Application 类派生了一个 PhoneApp 类?或者您是否期望有一个可以测试的叫做 PhoneApp 的东西?

      如果您希望测试某些内容,您需要编写一个 android.app.Application 类作为项目的一部分。

      或者,也许,你在谈论一些我不明白的事情。这总是可能的。

      【讨论】:

      【解决方案3】:

      如果您只是坚持使用 SDK,它甚至如何在其中包含“PhoneApp.class”进行编译?

      我知道您可以使用 Robotium 来测试现有的应用程序。

      【讨论】:

      • 我不只是坚持使用 SDK。我有整个平台的资源。
      【解决方案4】:

      详细阐述 Karim 的答案(它确实有效),这是设置方法:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-04
        相关资源
        最近更新 更多