Как проверить, закрывается ли приложение Xamarin для Android - PullRequest
0 голосов
/ 21 сентября 2018

Я пишу свое первое приложение для Android, используя Xamarin.У меня есть кнопка «Выход», которая при нажатии закрывает приложение.Мне нужен тест в Xamarin UITest, который подтверждает, что нажатие кнопки закрывает приложение.Некоторое время я возился с этим и, наконец, нашел то, что позволяет пройти тест.

В приложении:

exitButton.Click += (o, e) =>
{
    int pid = Android.OS.Process.MyPid();
    Android.OS.Process.KillProcess(pid);
};

В UITest:

[Test]
public void ExitButtonClosesTheScreen()
{
    try
    {
        app.Tap(c => c.Button("exitButton"));
        Assert.Fail("App remains open.");
    }
    catch (System.Exception e)
    {
        Assert.AreEqual("The underlying connection was closed: The connection was closed unexpectedly.", e.InnerException.InnerException.InnerException.Message);
    }
}

Тест сейчас проходит, так что, думаю, я счастлив.У меня вопрос, действительно ли это лучший способ сделать это?Или есть лучший способ, который я не смог найти?

Редактировать: К сожалению, это не ответ.Этот метод позволяет пройти тест в VS, но не проходит, когда я запускаю его в App Center.Есть ли другой способ запустить этот тест?Или это то, что просто не тестируется с UITest?Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

На днях я кратко прочитал об этом для чего-то подобного, и я уверен, что класс ActivityManager будет лучшим способом для этого.https://developer.xamarin.com/api/type/Android.App.ActivityManager/

В этом классе есть метод RunningAppProcesses, который возвращает список процессов приложения, запущенных на устройстве, и оттуда, я думаю, вы можете утверждать, что процесс вашего приложения находится насписок или нет.

Надеюсь, это поможет

0 голосов
/ 24 сентября 2018

Прежде всего, правильный код для закрытия Приложения, как по мне, использует финишную привязку

В действии:

this.FinishAffinity(); 

ВФрагмент:

this.Activity.FinishAffinity();

После этого AppCenter должен иметь возможность определить, что ваше приложение закрыто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...