Есть ли способ закрыть и повторно подключить приложение в Xamarin Android UITest?

Есть ли способ закрыть и снова подключиться к моему приложению в Xamarin UITest?

В моем тестовом примере я хочу закрыть и снова подключить свое приложение для Android.


person Avinash    schedule 29.06.2016    source источник
comment
На самом деле я смог сделать это без черного хода и при этом тест продолжался: stackoverflow.com/a/63322161/2353336   -  person bcr    schedule 09.08.2020


Ответы (1)


В зависимости от того, что вы подразумеваете под "закрыть", но вот несколько способов...

В MainActivty вашего Xamarin.Forms приложения для Android добавьте несколько UITest бэкдоров:

[Export("HardExitBackdoor")]
public void HardExitBackdoor()
{
    Log.Info("UITest", "Finish");
    Finish();
}

[Export("BackgroundBackdoor")]
public void BackgroundBackdoor()
{
    Log.Info("UITest", "MoveTaskToBack");
    MoveTaskToBack(true);
}

Теперь в вашем тесте вы можете «выйти» из своего приложения и «перезапустить» его:

[Test]
public void HardRestartApp()
{
    app.Invoke("HardExitBackdoor");
    BeforeEachTest();
    WelcomeTextIsDisplayed();
}

[Test]
public void BackgroundedApp()
{
    app.Invoke("BackgroundBackdoor");
    BeforeEachTest();
    WelcomeTextIsDisplayed();
}

[Test]
public void SoftRestartApp()
{
    for (var i = 0; i < 10; i++)
        app.Back();
    BeforeEachTest();
    WelcomeTextIsDisplayed();
}

Обновлять:

Android/Java и Calabash/Ruby

public class MainActivity extends Activity {
    ~~~~
    public void HardExitBackdoor() {
        Log.w(TAG, "finish");
        finish();
    }
    ~~~~
}

Чтобы вызвать этот метод в Ruby/calabash-android:

backdoor "HardExitBackdoor"
person SushiHangover    schedule 29.06.2016
comment
Мое приложение для Android не разработано с использованием Xamarin, поэтому я не могу написать вышеупомянутую функцию (HardExitBackdoor) в коде продукта моего приложения. Разве мы не можем сделать это, используя только тест FWK? - person Avinash; 01.07.2016
comment
@user3446142 user3446142 Я добавил в свой ответ пример Java/Ruby, так как вы не используете C# - person SushiHangover; 01.07.2016
comment
Спасибо Сушил за обновление. Но мое приложение разработано с использованием четкого сценария, я вообще не использовал Xamarin (будь то C # или Calabash) для разработки своего приложения. Поэтому я не могу добавить приведенный выше код в свой код продукта. Я хочу закрыть и повторно подключиться с помощью Xamarin UI Test FWK. Не могли бы вы помочь мне в этом? - person Avinash; 01.07.2016
comment
@user3446142 user3446142 Вам нужно будет спросить разработчиков скриптов, как выйти из среды их приложения (при условии, что это оболочка веб-представления), поскольку вы не используете C # или Java. Если они предоставляют какой-либо экспортированный API для этого, вы сможете вызывать его через вызов бэкдора C#/UITest (или Calabash/Ruby). - person SushiHangover; 01.07.2016