0

我有同样的问题,我正在使用 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 和独奏定义,它的个人工作正常,如果我使用作为 ClassB 扩展 Solo_d ClassA 扩展 ClassB
ClassC 扩展 ClassA 但如果我不想在 ClassB 中扩展 ClassA ,在 ClassC 中的 ClassB 它会难以知道继承的顺序

但我得到 NullPointerException 任何人都可以帮助解决这个问题

4

1 回答 1

0

我想您需要将构造函数添加到 A 类并删除“扩展 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();
    }
}

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

于 2013-09-27T13:22:36.987 回答