尝试生成一个简单的 ActivityUnitTestCase 来测试我的 Android 代码中的各种 fragment 。
public class MenuFragmentTest extends ActivityUnitTestCase<FragmentAdapter> {
static {
FragmentAdapter.setFragmentUnderTest(new MenuFragment());
}
public MenuFragmentTest() {
super(FragmentAdapter.class);
}
public void testMenuOptions() {
System.out.println(getActivity().findViewById(1));
}
}
我试图用来测试应用程序中的 fragment 的通用 FragmentAdapter:
public class FragmentAdapter extends FragmentActivity {
static Fragment fragmentUnderTest;
public static void setFragmentUnderTest(Fragment fragmentUnderTest) {
FragmentAdapter.fragmentUnderTest = fragmentUnderTest;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
setContentView(ll);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(fragmentUnderTest, null);
fragmentTransaction.commit();
}
}
主应用安装成功后,Android JUnit Test Runner 失败
java.lang.RuntimeException: Could not find test class. Class: com.XXX.core.MenuFragment
为什么Test Runner找不到我运行的测试类?
最佳答案
显然测试包的名称确实很重要:
来自 http://developer.android.com/tools/testing/testing_android.html :
If the application under test has a package name of com.mydomain.myapp, then the Android tools set the test package name to com.mydomain.myapp.test
更改包检测 targetPackage 属性不足以让您在与被测 Activity 相同的包中创建测试,即使测试在单独的测试项目中也是如此。
关于android - 运行 Android ActivityUnitTestCase 结果为 "RuntimeException: could not find test class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13102659/