我试图在ROBOLECTRIC中编写一个简单的单元测试。当我尝试做类似的事情时:
ImageView im = new ImageView(new Activity());
我收到错误:
java.lang.NullPointerException
at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:146)
at android.view.View.__constructor__(View.java:3269)
at android.view.View.<init>(View.java:3252)
at android.widget.ImageView.<init>(ImageView.java:112)
发生了什么事? getApplicationInfo如何返回null?
答案 0 :(得分:1)
因为您使用current创建新的Activity,所以它应该是这样的:
ImageView im = new ImageView(this);
或
ImageView im = new ImageView(MyActivity.this);
或
ImageView im = new ImageView(getApplication());
从robolectric/RobolectricSample
获取活动示例Activity activity = Robolectric.buildActivity(Activity.class).create().get();
所以它会是:
ImageView im = new ImageView(activity);
答案 1 :(得分:0)
哦等等。
Context context = Robolectric.getShadowApplication().getApplicationContext();
mSubject = new ImageView(context, mock(AttributeSet.class));