javascript - 在类方法中测试静态方法调用时出现TypeError

标签 javascript reactjs react-native jestjs

我在 React 组件中有一个静态方法,例如:

class DeliveryAddressScreen extends Component {
  static isAddressReady(address) {
    return !!(address)
  }

  sendAddress(address) {
    if(this.isAddressReady(address)) {
     // DO SOMETHING
    }

  }
}

还有我的测试:

  it('sample tests', () => {
    const component = shallow(<DeliveryAddressScreen />)
    component.instance().sendAddress('Address')
    expect(true).toBe(true) // Just a sample
  })

反馈是:

TypeError: this.isAddressReady is not a function

有没有正确的方法来模拟这个方法或类似的东西?

最佳答案

应使用类名调用静态方法。

class DeliveryAddressScreen extends React.Component {
  static isAddressReady(address) {
    return !!(address)
  }

  sendAddress(address) {
    if(DeliveryAddressScreen.isAddressReady(address)) {
        console.log(address)
    }
  }
}

const subject = new DeliveryAddressScreen()
subject.sendAddress("test")
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

关于javascript - 在类方法中测试静态方法调用时出现TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301062/

相关文章:

javascript - 从对象中取出具有无效(NaN、空白等)值的键的最佳方法?

javascript - 访问容器中的Reducer返回未定义

reactjs - 从 useEffect() 访问时状态变量正在更改

javascript - 使用 Enzyme 测试点击监听器

javascript - 该表格不包括我写的+号

reactjs - 测试时如何触发功能组件的卸载?

javascript - 将 Prop 从 Modal 传递到其他组件 react 导航

javascript - React-Native - 错误 : `StackViewTransitionConfigs` has been removed

mysql - 在来自状态的发布请求中发送日期始终返回 NULL

javascript - 使用 jquery 提交表单时指出表单中的特定错误位置