我遇到了同样的问题 我正在使用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 任何人都可以提供帮助
答案 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();
}
}
它对我有用,希望它对你有所帮助。