Среда тестирования пользовательского интерфейса Xamarin.Forms

Я пытаюсь настроить приложение Xamarin.Forms для использования тестов пользовательского интерфейса. В настоящее время тесты работают нормально, но я хотел бы иметь возможность имитировать или обрабатывать вызовы API, которые вызывает приложение, а не фактические вызовы API, выполняемые в тестах.

Похоже, есть способ, которым UITest может определить, запущено ли оно в тестовом облаке, но я не могу найти способ, чтобы приложение узнало, выполняет ли оно тесты локально. Я использую контейнер IoC для регистрации различных интерфейсов, которые взаимодействуют с этими API-интерфейсами, и хотел бы, чтобы конструктор App мог определить, запущен ли он UITest, а затем зарегистрировать соответствующие экземпляры «фактического» интерфейса или экземпляры «фиктивных». . Есть ли известный способ справиться с этим?


person itcoder    schedule 27.01.2021    source источник
comment
Как вы запускаете UITest? Используете ВС? Когда вы запускаете UITest для приложения, и тест возвращает сообщение?   -  person Wendy Zang - MSFT    schedule 28.01.2021
comment
Привет, Венди, да, я запускаю его с помощью Visual Studio Professional 2019. Меня смущает, что вы имеете в виду под «тестовым возвратом сообщения»? Тесты в том виде, в каком они выполняются, отлично работают, но я бы хотел, чтобы основное приложение знало, выполняется ли оно в данный момент тест. Поэтому конфигурация приложения будет вести себя по-разному при обработке вызовов API.   -  person itcoder    schedule 28.01.2021


Ответы (1)


Ваша проблема может быть решена разными способами, но я на самом деле делаю следующее:

Вы можете создать специальную конфигурацию компилятора:

введите здесь описание изображения

Затем, в зависимости от конфигурации, вы будете манипулировать бустером вашего контейнера, указывая ваши интерфейсы на фиктивные объекты.

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

person xleon    schedule 29.01.2021
comment
Спасибо @xleon. Это то, что я также использовал в своей настройке. По какой-то причине он начал работать и сейчас. Моя установка работала с использованием следующего ресурса с тестовой конфигурацией: medium.com/@benjamintodts/ - person itcoder; 01.02.2021