我有以下内容:
export class MyComponent extends React.Component {
boolToTitleCase = (value) => {
return value ? 'True' : 'False';
};
render () {
return (
<div></div>
);
}
然后在我的测试中,我这样做:
import {boolToTitleCase, MyComponent} from './MyComponentFile';
// blah blah
describe('Rendering', () => {
it('boolToTitleCase renders true to True and false to False', () => {
expect(boolToTitleCase(true)).toBe('True');
expect(boolToTitleCase(false)).toBe('False');
})
});
我收到此错误:
TypeError: (0 , MyComponent.boolToTitleCase) is not a function
53 | });
54 | it('boolToTitleCase renders true to True and false to False', () => {
> 55 | expect(boolToTitleCase(true)).toBe('True');
| ^
56 | expect(boolToTitleCase(false)).toBe('False');
57 | });
58 |
如何直接访问该方法?
答案 0 :(得分:0)
您要测试的功能是组件本身的一部分,不会被导出,因此无法直接导入。话虽如此,看一下实现,没有什么阻止您将其移到它自己的可导出函数中
export function boolToTitleCase = value => value ? 'True' : 'False';
export class MyComponent extends Component {
render() {
return <div></div>;
}
}
那样,您的测试就不必更改。