robotium使用笔记
1、多个测试用例运行时实际上是有顺序的,显示含有测试方法的类按照字母排序,同一个类里面的测试方法再按照字母排序,依次执行。所以可以通过添加前缀(A_,B_)等等调整测试顺序,让测试例子更符合渐进逻辑。
?
2、继承问题,理论上测试类可以继承ActivityInstrumentationTestCase2或者是它的子类,但是需要注意的是,如果是继承子类,那么子类中的测试方法在运行这个测试类的时候也会再次运行。
假设 A继承ActivityInstrumentationTestCase2且有测试方法testA;
??????? B继承A,且有测试方法testB;
那么当运行测试时,测试顺序是
??????? testA(A)--->testA(B)--->testB(B)
即testA会运行2次。
?
3、ActivityInstrumentationTestCase2<T>实际上API中要求指定被测试类的具体类型,但是在黑盒测试中,往往无法取得具体的测试类,在尝试直接用Activity代替时,测试效果不太理想,猜测可能是:
用Activity代替会令到启动被测试程序时出现未知的问题。(仅仅是根据现象猜测)实测机子本身性能有问题导致测试效果不稳定,这个也是有可能的。之后解决方法是不指定具体类型:
@SuppressWarnings({ "unchecked", "rawtypes" })public abstract class Framework extends ActivityInstrumentationTestCase2{private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.***.LauncherActivity";private static Class launcherActivityClass;static {try {launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);} catch (ClassNotFoundException e) {throw new RuntimeException(e);}} public Framework() throws ClassNotFoundException {super(launcherActivityClass);}}
?不过会提示warning,可添加注释消除warnning