您好,我试图在另一个函数中测试一个函数,该函数需要第二个函数外部的参数。
export const DetailsView = ({ intl, object, onClose }) => {
// some code
const getIsLogbookAllowed = () => {
return object && object.driver;
};
// more code
};
尝试测试此功能onLogbookReportModalClose
,但是我认为当我实例化时,变量对象不会被读取,而是转换为null。
测试
test('should return \'false\' when there is no driver', () => {
const wrapper = shallow(<DetailsView {...props} />)
const instance = wrapper.instance()
expect(instance.getIsLogbookAllowed()).toBe(true)
}
错误:
TypeError:instance.getIsLogbookAllowed不是函数
有什么建议吗?
答案 0 :(得分:0)
这是因为getIsLogBookAllowed
不是组件实例的属性,它是未定义的,因此不是函数。
您应该做的是这样的:
export class DetailsView extends Component {
getIsLogBookAllowed = () => this.props.object && this.props.object.driver;
render() {
return <JSX />
}
}
这样,函数就成为组件实例的一部分,您可以用函数替换类,这也可以工作。