React native 如何使用react native testing library提交表单或按输入上的enter键

React native 如何使用react native testing library提交表单或按输入上的enter键,react-native,unit-testing,react-testing-library,react-native-testing-library,React Native,Unit Testing,React Testing Library,React Native Testing Library,我有以下问题:我需要测试一个函数是否在我的测试中被调用,但要正确地测试它,我需要按enter键或提交表单,而它似乎没有按预期工作。我已经尝试了以下方法: fireEvent.keyDown(input, { key: 'Enter', code: 'Enter' }); fireEvent.submit(input); 触发组件的onSubmitEditing属性的唯一方法是按Enter键 下面是我要测试的代码: <Input placeholder="Cirurgião&qu

我有以下问题:我需要测试一个函数是否在我的测试中被调用,但要正确地测试它,我需要按enter键或提交表单,而它似乎没有按预期工作。我已经尝试了以下方法:

fireEvent.keyDown(input, { key: 'Enter', code: 'Enter' });
fireEvent.submit(input);
触发组件的onSubmitEditing属性的唯一方法是按Enter键

下面是我要测试的代码:

<Input placeholder="Cirurgião"
                  testID='input_buscaCirurgiao_index'
                  value={this.state.text}
                  autoCorrect={false}
                  keyboardType={(Platform.OS === 'android') ? 'visible-password' : 'default'}
                  onChangeText={(item) => this.setState({ text: item })}
                  onSubmitEditing={() => { this._searchPressingEnter() }} // i need to test this
                  autoCapitalize='none' />

按下回车键后,应调用\u searchpressinger功能,从而触发submitEditing属性。

在测试用例中,您可以触发
submitEditing
事件

//假设'input'是文本输入元素
fireEvent(输入“提交”)

有关触发事件的更多详细信息,请检查:。

是否使用Jest?-这可能会有帮助是的,我可以简单地监视函数并验证它是否被调用,但是要调用它,我需要按enter键提交表单。点击输入不会触发Submitediting。这实际上对我有效!!!非常感谢。尝试了几种不同的方法,但到目前为止都没有成功。不确定原因,但在我的示例中,我没有找到事件的处理函数:“submitEditing”。我的
@测试库/react native
是版本
“^7.2.0”
。我也不知道为什么它被称为
input
而不是
TextInput
元素。我在你上面发送的链接中找不到
提交编辑。您能否给出源代码,您是如何找到解决方案的?处理程序的名称是,
fireEvent(input,'submitEditing')
将在
TextInput
元素上触发该事件。源代码是我在回答中提供的链接-您可以触发
firevent
API中存在的任何事件。
_searchPressingEnter() {

        Keyboard.dismiss()

        let item = this.state.text

        this._buscarCirurgioes(item)
    }