当我将不同文件中的代码隔离以使用robotium运行测试用例时,出现零点异常

时间:2012-09-07 04:33:17

标签: java android unit-testing

我是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

1 个答案:

答案 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

我认为您的异常与您认为使用继承的方式有关,但实际上正在做其他事情。