Android应用程序单元测试
所以,我对android单元测试还不熟悉。我正在尝试为手机应用程序编写单元测试:Android应用程序单元测试,android,unit-testing,junit,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.Pho
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
}
}
现在我得到了一个
junit.framework.AssertionFailedError:PhoneApp不存在
。这里出了什么问题,为什么PhoneApp没有启动?您没有显示PhoneApp的代码。您是否从android.app.Application类派生了PhoneApp类?或者你是在期待有一个叫做PhoneApp的东西可以测试吗
如果你想测试一些东西,你需要在你的项目中编写一个android.app.Application类
或者,也许,你正在谈论一些我不明白的事情。这总是有可能的。如果您坚持使用SDK,那么在其中包含“PhoneApp.class”的情况下,这是如何编译的
我知道你可以使用Robotium来测试现有的应用程序 实际上,我建议在调用phone=getApplication()之前,先在setUp()方法中调用createApplication()。详细说明Karim的答案(它确实有效),这是设置方法:
MyApplication application;
@Override
protected void setUp() throws Exception {
super.setUp();
createApplication();
application = getApplication();
}
这个应用程序是android平台的一部分。例如,可以在这里找到:我不只是坚持SDK。我有整个平台的资料来源。
MyApplication application;
@Override
protected void setUp() throws Exception {
super.setUp();
createApplication();
application = getApplication();
}