React native 如何断言在React本机测试库中禁用了按钮?

React native 如何断言在React本机测试库中禁用了按钮?,react-native,jestjs,react-native-testing-library,React Native,Jestjs,React Native Testing Library,如何断言在React本机测试库中禁用了按钮?我会想象这样的情况: expect(getByRole('button')).toBeDisabled() 但是RNTL不提供toBeDisabled断言。由于RN的性质,这是一个常见的问题。我已经通过测试回调函数的实际效果,而不仅仅是比较调用的数量或类似的东西,达到了我的目标 description('-',()=>{ 让state=false const onPressMock=jest.fn(()=>{ state=!state }) 常量道具

如何断言在React本机测试库中禁用了按钮?我会想象这样的情况:

expect(getByRole('button')).toBeDisabled()
但是RNTL不提供
toBeDisabled
断言。

由于RN的性质,这是一个常见的问题。我已经通过测试回调函数的实际效果,而不仅仅是比较调用的数量或类似的东西,达到了我的目标

description('-',()=>{
让state=false
const onPressMock=jest.fn(()=>{
state=!state
})
常量道具:按钮操作={
文本:“提交”,
onPress:onPressMock
}
它('应该被禁用',()=>{
//动作:渲染容器
const{container}=render()
//断言1:检查按钮是否接收到{isDisabled}
expect(container.props.isDisabled).toEqual(true)
//第二幕:火警警报
fireEvent(容器“onPress”)
//断言2:“状态”应保持为false。
expect(state).toEqual(false)
})
})
确保您的按钮看起来像:

常量isBlockedInteraction:boolean=isLoading | | isDisabled;
返回(
)

.toHaveAttribute('disabled')
?@jornsharpe感谢您为我指明了正确的方向。正确的方法是
toHaveProp
。最后我发现确实有
。toBeDisabled
。文件: