我在 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/