Доступ к активности вызовов из модульного теста в приложении Xamarin для Android - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть Xamarin тестовое приложение для Android, настроенное с помощью Xunit и отдельный класс, содержащий модульные тесты для тестирования специфических функций Android.

MainActivity моего тестового приложения выглядит как

[Activity(Label = "xUnit Android Runner", MainLauncher = true, Theme = "@android:style/Theme.Material.Light")]
public class MainActivity : RunnerActivity
{

    protected override void OnCreate(Bundle bundle)
    {
        AddTestAssembly(typeof(Android_Platform_Tests.MainActivityTests).Assembly);

        AutoStart = true;

        base.OnCreate(bundle);
    }
}

Тест в моем классе MainActivityTests в настоящее время выглядит следующим образом:

[Fact]
public void mainActivity_ExitsEarlyIfRequiredPermissionsNotSet()
{
    ApplicationPermissions appPermissions = new ApplicationPermissions(context);

    Assert.True(appPermissions.hasPermissionToUseMicrophone);
}

И класс разрешений приложения будет использовать контекст для проверки разрешений, выполняя что-то вроде этого:

public class ApplicationPermissions
{
    public bool hasPermissionToUseMicrophone;

    public ApplicationPermissions(Context context)
    {
        CheckForMicrophoneUsePermission(context)
    }

    public void CheckForMicrophoneUsePermission(Context context)
    {
        if(ContextCompat.CheckSelfPermission(context, Manifest.Permission.RecordAudio) != Permission.Granted)
        {
            hasPermissionToUseMicrophone = false;
        }
    }
}

У меня вопрос: как я могу передать контекст вызывающей активности в модульный тест, чтобы я мог передать его в свои функции? Это правильный подход, или есть другой способ, которым я должен это делать?

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