android mock测试资源,使用MockContext测试 Android ApplicationTestCase_android_开发99编程知识库...
我是Android測試新手,我正在嘗試使用 MockContext ( 實際上我正在嘗試使用重命名模擬上下文) 創建一個 ApplicationTestCase 。 但我一直在找一個 AssertionFailedError 。 以下是我目前最基本的代碼:AppTests.javapackage com.myProject.test;import android.test.ApplicationT
我是Android測試新手,我正在嘗試使用 MockContext ( 實際上我正在嘗試使用重命名模擬上下文) 創建一個 ApplicationTestCase 。 但我一直在找一個 AssertionFailedError 。 以下是我目前最基本的代碼:
AppTests.javapackage com.myProject.test;
import android.test.ApplicationTestCase;
public class AppTests extends ApplicationTestCase {
public AppTests() {
super(MyApplication.class);
}
@Override
protected void setUp() throws Exception {
final RenamingMockContext mockContext = new RenamingMockContext(getContext());
setContext(mockContext);
createApplication();
}
}
MyApplication.javapackage com.myProject.test;
import android.app.Application;
public class MyApplication extends Application {
public MyApplication() {
}
@Override
public void onCreate() {
super.onCreate();
}
}
RenamingMockContext.javapackage com.myProject.test;
import android.content.Context;
import android.content.SharedPreferences;
import android.test.RenamingDelegatingContext;
import android.test.mock.MockContext;
public class RenamingMockContext extends RenamingDelegatingContext {
private static final String PREFIX ="test.";
public RenamingMockContext(Context context) {
super (new DelegatedMockContext(context), PREFIX);
//super(context, PREFIX);
}
private static class DelegatedMockContext extends MockContext {
private Context mDelegatedContext;
public DelegatedMockContext(Context context) {
mDelegatedContext = context;
}
@Override
public String getPackageName() {
return mDelegatedContext.getPackageName();
}
@Override
public SharedPreferences getSharedPreferences(
String name, int mode) {
return mDelegatedContext.getSharedPreferences(
PREFIX + name, mode);
}
}
}
失敗跟蹤:junit.framework.AssertionFailedError
at android.test.ApplicationTestCase.setupApplication(ApplicationTestCase.java:102)
at android.test.ApplicationTestCase.createApplication(ApplicationTestCase.java:118)
at com.myApplication.test.AppTests.setUp(AppTests.java:14)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1710)
注意如果我在RenamingMockContext構造函數中使用第二個 super() 調用,它被註釋掉了( 所以不要使用擴展的MockContext類) 。
更多推荐




所有评论(0)