在我的 React Native 项目中测试自定义按钮组件时,出现此错误:
event_id
我正在尝试根据该组件的 Enzyme 快照进行简单的单元测试。
这是Test suite failed to run
ReferenceError: OAuthButton is not defined
OAuthButton.test.js
这是我的组件:
import React, { Component } from 'react';
import OAuthButton from '../../src/components/OAuthButton';
import {shallow} from 'enzyme';
import toJson from 'enzyme-to-json';
describe('OAuth Button', () => {
it('should render without issues', () => {
const component = shallow(<OAuthButton provider='Facebook'/>);
console.log("Button snapshot in JSON: ", toJson(component));
expect(toJson(component)).toMatchSnapshot();
})
})
Package.json:
import React from 'react';
import {
TouchableOpacity,
Text,
Image
} from 'react-native';
import { Auth } from 'aws-amplify';
export default OAuthButton = (props) => {
return(
<TouchableOpacity onPress={() => Auth.federatedSignIn({provider: props.provider})}>
<Image source={
props.provider==='Facebook' ? require('../../assets/icons/facebookIcon.png') :
props.provider==='Google' ? require('../../assets/icons/googleIcon.png') :
require('../../assets/icons/missingIcon.png')
} />
<Text>Sign in with {props.provider}</Text>
</TouchableOpacity>
)
}
最后,setup.js
"jest": {
"presets": [
"react-native"
],
"setupFilesAfterEnv": [
"jest-enzyme"
],
"testEnvironment": "enzyme",
"testEnvironmentOptions": {
"enzymeAdapter": "react16"
},
"snapshotSerializers": ["enzyme-to-json/serializer"]
}
我该如何解决这个错误?