ReferenceError:未定义 - 使用 Jest 和 Enzyme 进行本机测试

时间:2020-12-21 19:15:29

标签: react-native unit-testing jestjs enzyme

在我的 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"]
  }

我该如何解决这个错误?

0 个答案:

没有答案