React native 使用排毒测试开关组件-轻敲会影响先前的toHaveValue()测试

React native 使用排毒测试开关组件-轻敲会影响先前的toHaveValue()测试,react-native,integration-testing,e2e-testing,detox,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(`FirstTogg

我正在尝试为带有开关的页面创建集成测试

<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`);
问题是,当我第一次断言没有检查切换时,我的测试失败了

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
,但这似乎没有改变任何事情

我用的是排毒9.0.5