Детокс - Как проверить, присутствует ли элемент без использования ожидаемого - PullRequest
0 голосов
/ 11 ноября 2018

Есть ли способ проверить, присутствует ли элемент, не используя ожидаемый с Detox? Прямо сейчас мне приходится вкладывать свою логику в блоки try / catch, чтобы контролировать ход теста, чтобы уменьшить нестабильность, когда он проверяет состояние экрана, прежде чем двигаться дальше с тестом. Я бы предпочел использовать if / else.

Заранее спасибо за любые предложения.

1 Ответ

0 голосов
/ 22 ноября 2018

Не самое элегантное решение, но я использовал следующее для потоковой передачи своего кода.

В файле помощника я создаю функции, которые переносят try / catch и возвращают true / false:

Например:

const expectToBeVisible = async (id) => {
  try {
    await expect(element(by.id(id))).toBeVisible();
    return true;
  } catch (e) {
    return false;
  }
};

module.exports = { expectToBeVisible };

Затем, когда я выполняю тесты, которые зависят от того, видим ли этот элемент или нет, я могу сделать следующее:

import { expectToBeVisible } from './helpers';

describe('Test', () => {

  ...

  it('If button is visible do X else do Y', async () => {
    let buttonVisible = await expectToBeVisible('button');

    if (buttonVisible) {
      // do something with that button
    } else {
      // do something else as the button isn't visible
    }
  });

 ...
});

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

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