Android JUnit for Fragments
当我试图包含Fragment类时,我遇到了这个错误 绑定不匹配:类型FirstFragment不是类型ActivityInstrumentationTestCase2的绑定参数的有效替代品 我的代码如下:Android JUnit for Fragments,android,junit,android-fragments,Android,Junit,Android Fragments,当我试图包含Fragment类时,我遇到了这个错误 绑定不匹配:类型FirstFragment不是类型ActivityInstrumentationTestCase2的绑定参数的有效替代品 我的代码如下: package com.example.firstactivity.test; import com.example.firstactivity.FirstFragment; import android.test.ActivityInstrumentationTestCase2; pu
package com.example.firstactivity.test;
import com.example.firstactivity.FirstFragment;
import android.test.ActivityInstrumentationTestCase2;
public class TestFirstFragment extends ActivityInstrumentationTestCase2<FirstFragment> {
private FirstFragment mFragment;
public TestFirstFragment(Class activityClass) {
super(activityClass);
// TODO Auto-generated constructor stub
}
@Override
protected void setUp() throws Exception {
super.setUp();
mFragment = getActivity();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public final void testPreconditions() {
assertNotNull(mFragment);
}
}
package com.example.firstactivity.test;
导入com.example.firstactivity.FirstFragment;
导入android.test.ActivityInstrumentationTestCase2;
公共类TestFirstFragment扩展了ActivityInstrumentationTestCase2{
私人第一碎片;
公共TestFirstFragment(类activityClass){
超级(活动类);
//TODO自动生成的构造函数存根
}
@凌驾
受保护的void setUp()引发异常{
super.setUp();
mFragment=getActivity();
}
@凌驾
受保护的void tearDown()引发异常{
super.tearDown();
}
公共最终作废测试先决条件(){
assertNotNull(mFragment);
}
}
请提出解决此问题的方法。当处理活动时,它工作得很好。。。我已经阅读了一些SO问题,例如,但要么他们没有回答我的问题,要么我无法理解他们。为了像使用FirstFragment一样使用ActivityInstrumentationTestCase2,需要以某种方式扩展Activity。执行此操作的片段类之一是FragmentActivity。我假设您使用的是其他片段类,这就是为什么会出现错误。我也遇到了同样的问题。事实证明,唯一可以替代参数“T”的类应该扩展“FragmentActivity”。或者在我的例子中,主类在清单中声明为“main”和“launcher”