запуск актива с данными о другом намерении одним и тем же тестовым приложением, которое использует классы инструментовки

1

Я применил тестовое приложение, используя класс приборов. Я хочу проверить свое приложение на разные данные о намерениях.

Есть ли способ запустить наше приложение под тестированием, несколько раз

Теги:
unit-testing

2 ответа

2

Это зависит от того, сколько тестового метода вы получили в вашем классе приборов

public void testFirstTime() {
  Intent intent = new Intent(getInstrumentation().getTargetContext(), MyActivity.class);
  Foo foo = new Foo();
  intent.putExtra("param", foo);
  setActivityIntent(intent);
  MyActivity myActivity = getActivity();
  assertNotNull(myActivity);
  // do some assert
}

public void testSecondTime() {
  Intent intent = new Intent(getInstrumentation().getTargetContext(), MyActivity.class);
  Bar bar = new Bar();
  intent.putExtra("param", bar);
  setActivityIntent(intent);
  MyActivity myActivity = getActivity();
  assertNotNull(myActivity);
  // do some other assert
}
0

Нашел решение, не самый красивый. В setUp я сделал:

 protected void setUp() throws Exception {

    setActivityInitialTouchMode(false);



    if(stage == 0){
        in1 = new Intent();
        in1.putExtra(Defintiens.EXTRA_1,  CopyUSerDetailsServiceMock.getMock1());
        in1.putExtra(Defintiens.EXTRA_2, UserProtfolioMock.getMock1());
        setActivityIntent(in1);
    }else if (stage == 1){
        in2 = new Intent();
        in2.putExtra(Defintiens.EXTRA_1, getMock1());
        in2.putExtra(Defintiens.EXTRA_2, getMock1());
        setActivityIntent(in2);
    }else if (stage == 3){
        in3 = new Intent();
        in3.putExtra(Defintiens.EXTRA_1, getMock1());
        in3.putExtra(Defintiens.EXTRA_2, getMock1());
        setActivityIntent(in3);
    }else if (stage == 4){
        in4 = new Intent();
        in4.putExtra(Defintiens.EXTRA_1, getMock1());
        in4.putExtra(Defintiens.EXTRA_2, getMock1());

    }

    mActivity = getActivity();


    super.setUp();
}


  @Override
    protected void tearDown() throws Exception {
        mActivity.finish();
        super.tearDown();
    }

  private static int stage = 0;
    public void testInjectExtra2(){
        stage = 2;
         //In each test you should set the stage to tour testing 
         //...... Run your test
}

Теперь в каждом тесте активность перезапустится с намерением, я хочу

Ещё вопросы

Сообщество Overcoder
Наверх
Меню