Я пытаюсь создать интеграционный тест для страницы с переключателем.
<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.