所以,我是 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/