我有一个带有嵌套类的类,其中包含测试用例。它看起来像这样:
public class ProviderUtilsTest {
public static final String TAG = ProviderUtilsTest.class.getSimpleName();
public static class TestConstructor {
@Test
public void noPublicConstructor() {
Class<ProviderUtils> clazz = ProviderUtils.class;
Constructor<?>[] constructors = clazz.getConstructors();
for (Constructor<?> constructor : constructors) {
assertThat(constructor.isAccessible(), is(false));
}
}
}
}
当我使用此配置时,Android Studio不会将ProviderUtilsTest
视为测试用例。即当我用RMB点击它的文件时,它不允许运行它,并且它不显示类声明行左侧的运行按钮。但它会为嵌套类显示它。
如何将ProviderUtilsTest
视为测试用例,即显示适当的用户界面并强制它运行嵌套类的所有测试?
答案 0 :(得分:0)
我不想说你的好测试理念的执行情况有多糟糕,但我会向你提供我的解决方案,该解决方案应该有效,并给出与你相同的结果。
将现有代码更改为:
public class ProviderUtilsTest {
public static final String TAG = ProviderUtilsTest.class.getSimpleName();
public static class TestConstructor {
public boolean noPublicConstructor() {
Class<ProviderUtils> clazz = ProviderUtils.class;
Constructor<?>[] constructors = clazz.getConstructors();
for (Constructor<?> constructor : constructors) {
if (constructor.isAccessible()) return false;
}
return true
}
}
}
然后在您的ExampleActivityTest中写下这个:
@Test
public void ensureThatThereIsNoPublicConstructor() throws Exception {
assertTrue(ProviderUtilsTest.TestConstructor.noPublicConstructor());
}
希望它会有所帮助
答案 1 :(得分:0)
为了更好的结构目的。我希望外部类代表整个类的测试用例,每个嵌套类都是针对特定方法的测试用例,嵌套类的每个方法都要对特定输入进行测试
或者,您可以使用包来组织测试用例。