如何在activity中接收参数,并使用ActivityInstrumentationTestCase2进行扩展

时间:2013-01-09 06:57:00

标签: android instrumentation android-testing

命令:

adb shell am instrument -e  class com.vishal.nirma.test.MyActivity#MyFunction  com.vishal.nirma.test/android.test.InstrumentationTestRunner -e myvar myvalue

现在,

protected void setUp() throws Exception {
        getActivity();
        super.setUp();

// here i want to receive arguments, which are passed in command line (ex. myvar).
       // how to receive arguments here?
} 

我正在使用“ActivityInstrumentationTestCase2”。

我在setup()中尝试了以下代码,但它对我不起作用。

Bundle extras = getActivity().getIntent( ).getExtras( );


        if ( extras != null ) 
        {

          Log.v(TAG,"Parameters Received !!!");

          if ( extras.containsKey ( "myvar" ) ) 
          {
            String str_myvar = extras.getString ( "myvar" );

          } else {

          }
        }
        else
        {
            Log.v(TAG,"No parameters ???");
        }

它总是给我“没有参数???”。

先谢谢你的帮助......: - )

1 个答案:

答案 0 :(得分:0)

如果只是这么容易!您在命令行传递的参数将由检测测试运行器使用,而不是Instrumentation测试用例。这意味着抓住他们需要得到跑步者。

您实际上可以将Instrumentation转换为您正在使用的测试运行器,一旦您执行了稍微不安全的转换,您就可以调用getBundle()来获取传递给它的参数。完成后,您就可以获得所需的值。