Тестирование компонентов Switch с помощью Detox - касание влияет на предыдущий тест toHaveValue () - PullRequest
1 голос
/ 14 марта 2019

Я пытаюсь создать интеграционный тест для страницы с переключателем.

<Switch style={settingsStyles.switch}
  value={this.props.value}
  onValueChange={this.onValueChange}
  testID={`FirstToggle`}/>

Я начал писать свой тест следующим образом:

let toggle = element(by.id(`FirstToggle`));
await expect(toggle).toHaveValue(`0`);

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

let toggle = element(by.id(`FirstToggle`));
await expect(toggle).toHaveValue(`0`);

await toggle.tap();

toggle = element(by.id(`FirstToggle`));
await expect(toggle).toHaveValue(`1`);

Проблема в том, что мои тесты теперь не выполняются при выполнении утверждения first , что переключатель не проверен!

Failed: [Error: Error: An assertion failed.
    Exception with Assertion: {
      "Assertion Criteria":  "assertWithMatcher:((respondsToSelector(isAccessibilityElement) && isAccessibilityElement) && accessibilityValue('0'))",
      "Element Matcher":  "((!(kindOfClass('RCTScrollView')) && (respondsToSelector(accessibilityIdentifier) && accessibilityID('FirstToggle'))) || (((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches(kindOfClass('RCTScrollView'))) && ((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches((respondsToSelector(accessibilityIdentifier) && accessibilityID('FirstToggle'))))))"
    }

Что я делаю не так?Я пытался использовать waitFor при выполнении утверждений, но это, похоже, ничего не меняет.

Я использую Detox 9.0.5.

...