在robotium中如何处理多个类

时间:2013-09-27 10:14:58

标签: java junit robotium

我遇到了同样的问题 我正在使用3个类(classA,ClassB,ClassC)和solo_d类,在我的ClassC中我正在测试,在ClassA和ClassB中我只使用solo.sleep

public class ClassA extends Solo_d{
public void click_on_save(){
Log.v("Test" , "Test in classA");
solo.sleep(5000);                // getting error null pointer exception 
solo.clickOnText("Saved")
}}


public class ClassC extends Solo_d {
ClassA aa = new ClassA();
@Test
public void test001(){
Log.v("Test" , "Test Start ");
aa.click_on_save();
}}

我正在使用与classA相同的ClassB并在ClassC中使用

在Solo_d类中我给了正确的Activity和solo定义它的工作正常个人,如果我使用ClassB扩展Solo_d也工作正常 ClassA扩展了ClassB
ClassC扩展了ClassA 但如果我不想在ClassB中扩展ClassA,在ClassC中扩展ClassB 很难知道继承的顺序

但是我得到了NullPointerException 任何人都可以提供帮助

1 个答案:

答案 0 :(得分:0)

我想你需要在A类中添加构造函数并删除“extends Solo_d”

public class ClassA{

    static Solo solo;

    //contructor
    public ClassA(Solo _solo){
      solo = _solo
    }

    public void click_on_save(){
    Log.v("Test" , "Test in classA");
    solo.sleep(5000);
    solo.clickOnText("Saved");
    }
}

并在你的ClassC中:

public class ClassC extends Solo_d {

    @Test
    public void test001(){
    ClassA aa = new ClassA(solo);
    Log.v("Test" , "Test Start ");
    aa.click_on_save();
    }
}

您可以在ClassC中创建相同的构造函数,并在Solo_d类中调用它(例如,在setUp()方法中)

public class ClassC {

    static Solo solo;
    public ClassC(Solo _solo){
        solo = _solo
    }
    ClassA aa = new ClassA(solo);
    @Test
    public void test001(){
    Log.v("Test" , "Test Start ");
    aa.click_on_save();
    }
}

它对我有用,希望它对你有所帮助。