Можно ли использовать device.setLocation () для каждого теста? - PullRequest
0 голосов
/ 06 июня 2019

Представьте себе экран, на котором отображается список зданий с указанием расстояния до них из текущего местоположения устройства. Этот список вычисляет расстояние на креплении и только при обновлении.

Вот как я написал этот тест,

beforeAll(async () => {
        const launchParams = {
            permissions:
            {
                location: 'inuse'
            }
        };

        await launchApp(launchParams);

        await device.setLocation(office.lat, office.lon);

        ...
    });

Этот тест пройден успешно,

it.only('should show <building_name> distance as 15.6km', async () => {
        await inputSearchQuery({ query: '<building_name>' });

        await expectElementByIdToHaveText({ elementId: TestID.DISTANCE, ancestorId: 'b1da9f0d-218e-4a8f-ab65-bdf1eb3b9764', text: ' 15.6km' });
    });

Затем я хочу смоделировать перемещение ближе к этому зданию, а затем пользователь обновляет список. Таким образом,

it.only('should show <building_name> distance as 29m after changing location', async () => {
        await device.setLocation(closeToBuilding.lat, closeToBuilding.lon);

        await inputSearchQuery({ query: '<building_name>' });

        await element(by.id(TestID.BUILDINGS_SECTION_LIST)).swipe('down');

        await expectElementByIdToHaveText({ elementId: TestID.DISTANCE, ancestorId: 'b1da9f0d-218e-4a8f-ab65-bdf1eb3b9764', text: ' 29m' });
    });

В этом случае расстояние указывается так же, как и в параметре beforeAll (), а не в test (). Однако если я возьму этот тест в свой собственный файл, он будет работать, как и ожидалось (поскольку, очевидно, я правильно устанавливаю местоположение в beforeAll ()).

Мои вопросы 1) Можем ли мы установить местоположение только в beforeAll ()? 2) Разве мы не можем установить местоположение более одного раза в тестовом файле? 3) Если бы я должен был смоделировать движение пользователя и увидеть изменения, отраженные на экране, что было бы лучше, если бы это было?

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