dis*_*ynx 6 unit-testing react-native react-testing-library react-native-testing-library
我有以下问题:我需要测试在我的测试中是否调用了某个函数,但为了正确测试它,我需要按 Enter 或提交表单,但它似乎没有按预期工作。我已经尝试过以下操作:
\nfireEvent.keyDown(input, { key: \'Enter\', code: \'Enter\' });\nfireEvent.submit(input);\nRun Code Online (Sandbox Code Playgroud)\n触发我的组件的 prop 的唯一方法onSubmitEditing是按 Enter 键。
这是我正在尝试测试的代码:
\n<Input placeholder="Cirurgi\xc3\xa3o"\n testID=\'input_buscaCirurgiao_index\'\n value={this.state.text}\n autoCorrect={false}\n keyboardType={(Platform.OS === \'android\') ? \'visible-password\' : \'default\'}\n onChangeText={(item) => this.setState({ text: item })}\n onSubmitEditing={() => { this._searchPressingEnter() }} // i need to test this\n autoCapitalize=\'none\' \n/>\nRun Code Online (Sandbox Code Playgroud)\n这是该_searchPressingEnter函数的代码:
_searchPressingEnter() {\n Keyboard.dismiss()\n\n let item = this.state.text\n\n this._buscarCirurgioes(item)\n}\nRun Code Online (Sandbox Code Playgroud)\n一旦按下 Enter 键,_searchPressingEnter就应该调用该函数,从而触发该onSubmitEditing道具。
在您的测试用例中,您可以触发该submitEditing事件。
// Assuming `input` is your text input element
fireEvent(input, 'submitEditing')
Run Code Online (Sandbox Code Playgroud)
有关触发事件的更多详细信息,请检查:https://callstack.github.io/react-native-testing-library/docs/api#fireevent。
| 归档时间: |
|
| 查看次数: |
4405 次 |
| 最近记录: |