我是Android世界和Android自动化的新手。我正在为银行应用程序进行测试自动化,首先是登录成功后的登录页面,将有交易页面和设置页面。我写了3个类,一个用于ActivityInstrumentation
类的检测,它创建了msolo
的句柄,第二个是AppTest
,这是我的测试类,我将编写我的测试用例,第三个是{ {1}}我将使用我的测试辅助方法。
以下是我的错误。
AppUIHelper
我在哪里弄错了?请帮我解决这个问题。
以下是我的班级文件:
用于Android活动检测:检测类:
java.lang.NullPointerException
at com.androidApp.Business.AppUILayer.PendingDevice(AppUILayer.java:34)
at com.androidApp.Test.AppTest.testPendingDevice(AppTest.java:72)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
第二个文件是:public class InstrumentationHandle extends ActitvityInstrumentationTestCase2
{
protected Solo msolo;
private static final String TARGET_PACKAGE_ID="com.android.mobileandroidapp";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.android.mobileandroidapp.LoginActivity";
private static Class launcherActivityClass;
Logger log = new Logger();
public AppUILayer appUI = null;
static {
try {
launcherActivityClass=Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
/// Constructer
public InstrumentationHandle() throws ClassNotFoundException {
super(TARGET_PACKAGE_ID,launcherActivityClass);
}
protected void setUp() {
msolo = new Solo(getInstrumentation(), getActivity());
}
public Solo getSolo() {
return msolo;
}
}
(我正在考虑编写所有测试用例)
AppTest
第3个是测试用例的帮助程序类:public class AppTest extends InstrumentationHandle {
public boolean result;
public AppUILayer app= new AppUILayer();
public AppTest() throws ClassNotFoundException {
super();
}
protected void setUp() {
super.setUp();
}
public void testPendingDevice() throws InterruptedException {
String loginID="MobileCNP1";
String password="CNPMobile1";
result= app.PendingDevice(loginID, password);
assertTrue(result);
}
public void tearDown() throws Exception {
//solo.finishOpenedActivities();
}
}
AppUIHelper
答案 0 :(得分:0)
尝试在每一行之后执行Debug.Print或Console.WriteLine,直到找到导致问题的确切行。这将有助于您缩小问题范围。
我也注意到了一些事情,AppUIHelper正在扩展一个类。你没有继承它,检查一下: http://msdn.microsoft.com/en-us/library/bb383977.aspx
我还建议在C#中查看继承: http://msdn.microsoft.com/en-us/library/ms173149.aspx
我认为您的异常与您认为使用继承的方式有关,但实际上正在做其他事情。