我正在编写关于使用笑话和酶反应本机应用程序的单元测试。当我尝试运行测试用例时,出现以下错误:
●测试套件无法运行
TypeError:无法读取未定义的属性“ SHORT”
at Object。 (node_modules / react-native-simple-toast / index.js:7:23) 在对象。 (src / client / components / Catalogue / events.js:10:29) 在对象。 (测试 /events-test.js:5:13) 在Generator.next() 在新的Promise() 在Generator.next()
该错误是由于从react-native-simple-toast导入Toast引起的。没有此导入,测试运行正常,但是我需要在组件中使用react-native-simple-toast,因此无法删除它。以某种方式,我需要在组件中使用react-native-simple-toast进行测试:
import React, { Component } from 'react'
import { Platform, ActivityIndicator, Linking, Dimensions, View, Text,
TouchableOpacity, TextInput, StyleSheet, Keyboard, Image,
KeyboardAvoidingView } from 'react-native'
import { Container, Header, Card, CardItem, Content, Left, Right, Body,
Title, Icon, Button } from 'native-base';
import IconIOSback from 'react-native-vector-icons/Ionicons';
import IconMenu from 'react-native-vector-icons/MaterialIcons';
import axios from 'axios';
import SERVER_URL from '../../config';
import { Col, Row, Grid } from 'react-native-easy-grid';
import Toast from 'react-native-simple-toast'; //this causes the error
请帮助我解决此问题。
答案 0 :(得分:0)
安装
npm install react-native-simple-toast --save
安装后。
react-native link
然后在node_modules
文件夹中检查是否添加了此模块
重新启动项目并再次运行
这里是Discussion
答案 1 :(得分:0)
解决此问题的方法是模拟属性SHORT
。
创建一个测试设置文件,例如setup.js
,并包含以下模拟文件
jest.mock('react-native-simple-toast', () => ({
SHORT: jest.fn(),
}));
确保将此文件添加到package.json
配置下的jest
中,即
"jest":
.....
"setupFiles": [
"/setup.js" // location of your setup.js file
]
答案 2 :(得分:0)
请确保在安装软件包后已运行cd ios && pod install
。
这可能是由于现有缓存所致。
npm run ios