首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用外部插件的react-native中出现Jest测试用例错误

使用外部插件的react-native中出现Jest测试用例错误
EN

Stack Overflow用户
提问于 2017-07-25 14:53:33
回答 2查看 952关注 0票数 5

我正在使用react-native init创建一个react-native项目。我正在为SQLite绑定使用https://github.com/andpor/react-native-sqlite-storage库。

我有一个DbConnector.jest-test.js单元测试文件。内容是

代码语言:javascript
复制
import DbConnector from '../app/components/DbConnector.js';
// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';

it('renders correctly', () => {
const tree = renderer.create(
<DbConnector />
);
});

当我运行jest时,即使在默认情况下忽略了node_modules,我也会收到以下错误。我在package.json中使用了react-native preset

代码语言:javascript
复制
Test suite failed to run

ReferenceError: window is not defined

  at Object.<anonymous> (node_modules/react-native-sqlite-storage/lib/sqlite.core.js:53:10)
  at Object.<anonymous> (node_modules/react-native-sqlite-storage/sqlite.js:10:12)
  at Object.<anonymous> (app/components/DbConnector.js:3:31)

Test Suites: 1 failed, 1 total

DbConnector.js中的导入如下所示:

代码语言:javascript
复制
import React, { Component } from 'react'
import { AppRegistry, StyleSheet, Text, View, TextInput, Button, Alert, 
AsyncStorage } from 'react-native'
import SQLite from 'react-native-sqlite-storage'
EN

回答 2

Stack Overflow用户

发布于 2017-07-31 06:11:59

您应该在测试之前尝试模拟react-native-sqlite-storage。

代码语言:javascript
复制
jest.mock('react-native-sqlite-storage');
票数 3
EN

Stack Overflow用户

发布于 2017-07-27 22:16:43

看起来你的问题window is not defined来自这一行:https://github.com/andpor/react-native-sqlite-storage/blob/master/lib/sqlite.core.js#L53

看起来您的测试缺少react-native的导入,应该如下所示:

代码语言:javascript
复制
import 'react-native';
import renderer from 'react-test-renderer';

如果这不起作用,您可以按照以下步骤使用JSDOM from this guide (它来自酶,但可能仍有帮助!)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45295946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档