使用排毒测试开关组件-轻击会影响之前的toHaveValue()测试

时间:2019-03-14 14:14:31

标签: react-native integration-testing e2e-testing detox

我正在尝试使用开关切换为页面创建集成测试。

<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。

0 个答案:

没有答案